【发布时间】:2023-03-09 06:45:01
【问题描述】:
我正在使用 phonegap 和 jquery mobile 为 Android 手机构建应用程序。是否可以将方向锁定在一页上?例如。页面“地图”已加载,方向锁定为“横向”模式。
【问题讨论】:
标签: jquery jquery-mobile cordova orientation landscape
我正在使用 phonegap 和 jquery mobile 为 Android 手机构建应用程序。是否可以将方向锁定在一页上?例如。页面“地图”已加载,方向锁定为“横向”模式。
【问题讨论】:
标签: jquery jquery-mobile cordova orientation landscape
我尝试修改 manifest.xml 并且它有效。只需将 android:screenOrientation="landscape" 属性添加到您的活动标签,如下所示:
<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>
【讨论】:
我认为不是。在 xCode for 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 中的乘法调整大小回调错误和 android 中的 non-/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 事件。
因此,当您绑定任何函数时,您所做的调整大小会引发方向更改。
【讨论】:
.live 函数做到了,但还是不行。