jQuery Mobile的locking方向

嘿家伙我使用phonegap和jquery手机来build立一个Android手机的应用程序。 是否有可能locking一个页面的方向? 例如页面“地图”被加载,并且方向被locking到“风景”模式。

不是我真的想。 在xcode的iOS应用程序是不可能的。 唯一能解决的问题是根据window.orientation旋转你的身体或包装

 $(window).bind("orientationchange", function(){ var orientation = window.orientation; var new_orientation = (orientation) ? 0 : 180 + orientation; $('body').css({ "-webkit-transform": "rotate(" + new_orientation + "deg)" }); }); 

这是一个冒险的方式,但认为它是唯一的方法..

希望这有助于,请让我知道!

见: http : //jsfiddle.net/aalouv/sABRQ/1/


另外,你可以绑定到窗口大小调整事件。

 $(window).bind("resize", function(){ var orientation = window.orientation; var new_orientation = (orientation) ? 0 : 180 + orientation; $('body').css({ "-webkit-transform": "rotate(" + new_orientation + "deg)" }); }); 

我前一段时间写了这个小脚本:它修复了iOS safari中的multiply resizecallbackbug以及android中的非/ late- / early-trigger(1)orientationchange错误。

(1)有时在浏览器改变宽度+高度之前有时不会触发,有时会触发。 有线!

 if (!(/iphone|ipad/gi).test(navigator.appVersion)) { $(window).unbind("resize").bind("resize", function() { $(window).trigger("orientationchange"); }); } 

如果不是iPhone或iPad,则触发窗口上的orientationchange事件。

所以当你绑定任何function时,你resize会导致方向改变。

我试图修改manifest.xml,它的工作原理。 只需将android:screenOrientation =“landscape”属性添加到您的activity标签中,如下所示:

 <application android:icon="@drawable/ic_launcher" android:label="@string/app_name"> <activity android:label="@string/app_name" android:name=".Phonegap_AppName" android:configChanges="orientation|keyboardHidden" android:screenOrientation="landscape"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>