当前位置: 首页 > 知识库问答 >
问题:

Ionic 2屏幕定位插件更改

夹谷志
2023-03-14

我需要你的帮助:两个月前,我的Ionic 2应用程序工作正常,使用ScreenOrientation cordova插件,代码如下:

window.addEventListener('orientationchange', ()=>{
  console.info('DEVICE ORIENTATION CHANGED!');
  console.debug(ScreenOrientation.orientation);
  if(ScreenOrientation.orientation.type.indexOf('landscape') !== -1){
    this.screenOrientationIsPortrait = false;
  } else if(ScreenOrientation.orientation.type.indexOf('portrait') !== -1){
    this.screenOrientationIsPortrait = true;
  }
});

在一台新笔记本电脑中,我安装了最新的Ionic 2版本和最新版本的cordova ScreenOrience插件,并且使用相同的应用程序代码,我在编译时收到了这个错误:

类型“string”上不存在属性“type”。

我尝试使用ScreenOrientation插件的github存储库中的示例:

window.addEventListener('orientationchange', ()=>{
  console.info('DEVICE ORIENTATION CHANGED!');
  console.debug(ScreenOrientation.orientation);
  if(screen.orientation.type.indexOf('landscape') !== -1){
    this.screenOrientationIsPortrait = false;
  } else if(screen.orientation.type.indexOf('portrait') !== -1){
    this.screenOrientationIsPortrait = true;
  }
});

但有了这些代码,我在编译时也会遇到这样的错误:

属性“方向”在类型“屏幕”上不存在

爱奥尼亚2和ScreenOrientation插件最近都进行了更新。根据我的研究,这似乎是TypeScript错误,而不是更新版本冲突。

我怎样才能知道出了什么问题?我怎样才能调试找到这个新错误的原因?有什么想法吗?谢谢你的帮助。

Github存储库示例:https://github.com/apache/cordova-plugin-screen-orientation

离子2示例:https://ionicframework.com/docs/v2/native/screen-orientation/

共有1个答案

赫连飞沉
2023-03-14

实际上,您可以在不添加插件的情况下检测屏幕方向的变化。使用类型窗口的特性方向。

window.addEventListener('orientationchange', () => {
      console.info('DEVICE ORIENTATION CHANGED!');
      console.debug(ScreenOrientation.orientation);
      switch (window.orientation) {
        case -90:
        case 90:
              console.log("Landscape orientation");
              this.screenOrientationIsPortrait = true;
              break;
        case 0:
             console.log("Landscape orientation");
              this.screenOrientationIsPortrait = false;
             break;
      }      
    });
 类似资料:
  • 调整屏幕的亮度 导航至 Settings(设定)应用程式,找到并轻触 Display(显示)。 轻触Adjust brightness(调节屏幕亮度)。 选择并轻触所需的亮度。 您可以通过调暗手表屏幕的亮度来延长电池的使用寿命。 打开/关闭 Always-on screen(保持启用屏幕) 您可选择是否想让屏幕暗淡地显示时间,或未使用手表时将屏幕完全关闭。 通过 M600 更改设定 导航至设置应用

  • 我试图使一个登录屏幕类似于锁定屏幕与4 TextField。我面临的问题是如何将焦点从一个文本字段切换到下一个文本字段。 当我说时,firstTextField的值被复制到secondTextField 我使用的是十进制键盘类型 } 我如何才能正确地做到这一点,任何帮助和建议请。

  • Geolocation定位服务插件。融合了浏览器定位、高精度IP定位、安卓定位 sdk 辅助定位等多种手段,提供了获取当前准确位置、获取当前城市信息、持续定位(浏览器定位)等功能。用户可以通过两种当时获得定位的成败和结果,一种是在 getCurrentPosition 的时候传入回调函数来处理定位结果,一种是通过事件监听来取得定位结果。Geolocation 定位常见问题说明 注:默认情况下,PC

  • 问题内容: 我已经从github设置了屏幕截图插件,位于: https://github.com/phonegap/phonegap- plugins/tree/master/Android/Screenshot 我按照指示并使用cordova 1.8.1进行了设置。它可以正常工作,并且屏幕截图已保存到手机中。但是,它在cordova 2.0.0中失败。 Screenshot.java代码: ht

  • 我正在向运行的activity添加一个带有WindowManager的相机覆盖。当我启动相机并调用WindowManager时,它将我的屏幕从纵向变为横向,即使我为WindowManager.LayoutParams分配了适当的纵向标记。还没能通过谷歌找到任何解决方案。 下面是我在服务中的方法中运行的WindowManager代码: 布局r.layout.camera只是我将相机添加到的Frame

  • 我是swift和Xcode新手,我想知道是否有人愿意向我解释,我应该如何让我的启动屏幕显示3秒钟,然后在这段时间内稍微淡出? 我想做一个我以前构建的网页的web视图,但希望它在启动屏幕之前淡出。 我已经阅读了所有其他与该主题相关的问题,但我不理解它们。我也一直在关注一些关于这个主题的教程,但什么都没有。 有人吗,拜托?