【问题标题】:Phonegap 2.2.0 - Detecting orientationPhonegap 2.2.0 - 检测方向
【发布时间】:2013-01-14 23:15:53
【问题描述】:

我有一个想要保持纵向模式的应用,除了我想要检测方向更改、触发 js 事件并更改方向的单个视图(仅适用于该视图)。

我的应用中有以下代码:

   window.shouldRotateToOrientation = function(rotation) {
     switch (rotation) {        
       case 0:
       case 180:
        console.log("Portrait");
        return false;
        //LandscapeRight or LandscapeLeft
       case 90:
       case -90:
        console.log("Landscape");
        return false;
     }
  }

这似乎在为 iOS5 构建时可以正常工作,通过返回 false 使应用程序保持纵向,并在设备处于横向模式时正确触发。然而,当为 iOS6 构建时,每次设备旋转时,该函数被调用 4 次,匹配每种情况 - 使检测无用。

我是否正确地解决了这个问题 - 是否有其他方法或者我缺少什么?

请注意,我对 XCode/ios/ObjectiveC 环境的了解非常有限

【问题讨论】:

  • 你用的是哪个版本的phonegap?
  • 你找到解决办法了吗?
  • 我们最终锁定了应用的方向并通过加速度计检测方向变化

标签: javascript ios cordova


【解决方案1】:

试试这个代码:

function changeOrientation() {
    switch (window.orientation) {
        case 0:
            // portrait, home bottom
        case 180:
            // portrait, home top
            alert("portrait H: " + $(window).height() + " W: " + $(window).width());
            break;
        case -90:
            // landscape, home left
        case 90:
            // landscape, home right
            alert("landscape H: " + $(window).height() + " W: " + $(window).width());
            break;
    }
}

window.onorientationchange = function () {
    //Need at least 800 milliseconds
    setTimeout(changeOrientation, 1000);
}

超时应该可以解决问题。

【讨论】:

    【解决方案2】:

    以下方法可以帮助我检测方向:

    function isOrientationPortrait(){
      if ($(window).height() > $(window).width()){ 
        return true; 
      } else { 
        return false; 
      }
    }
    
    $(window).on('orientationchange', function () {
      if(isOrientationPortrait()){
        console.log("Portrait");
      } else {
        console.log("Landscape"); 
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 2015-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多