如何在移动应用程序上仅在一个页面上锁定方向
How to lock orientation for only on one page on Mobile App?
我们正在开发混合应用程序,因此从编码的角度来看,大部分工作只在HTML5、CSS3和Javascript/JQuery中进行。
能够在SO 上找到相关的帖子
方向锁定
如何在Android中禁用方向更改?
然而,我们只需要在一个页面上锁定方向,而没有在清单文件中添加设置的自由。正在寻找一个基于Javascript/JQuery的解决方案或可以使用Javascript调用的Android插件?
您可以在Android Manifest:中指定每个活动的方向
<activity
android:name=".activities.LoginActivity">
</activity>
<activity
android:name=".activities.HomeActivity"
android:screenOrientation="userLandscape">
</activity>
在上面的示例中,当用户更改方向时,LoginActivity将旋转,但HomeActivity将始终处于横向。
您可以通过在onCreate()
中调用setContentView()
之前调用setRequestedOrientation()
,以编程方式设置一个Activity
的方向,如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
...
}
您还可以通过添加以下内容来指定清单中一个Activity
的方向:
android:screenOrientation="portrait"
像这样:
<activity android:name="com.example.ui.MainActivity"
android:screenOrientation="portrait" />
我对应用程序也有类似的要求。它无法锁定方向,但我可以使用"设备方向"事件检测方向变化,该事件可以作为window.addEventListener("deviceorientation", hadlerFunction, true);
处理。我所做的是,我显示了一个提示用户更改tge方向的警报。它不是一个混合应用程序。但是,如果您遵循此链接[1]
[1] :在PhoneGap/Cordova中使用JavaScript锁定设备方向的能力您会得到一些问题的输入。
找到了一个可以完成这项工作的非常简单的插件:
pg插件屏幕方向
非常易于使用:
To lock the screen to Landscape: navigator.screenOrientation.set('landscape');
To lock the screen to Portrait: navigator.screenOrientation.set('portrait');
To unlock: navigator.screenOrientation.set('fullSensor');
为我们工作。
- jquery脚本只能在一个方向上正常工作
- JQuery后台位置似乎只在一个方向上起作用
- HTML5 JS-我如何使我的子弹/镜头在一个恒定的方向
- 有人能为我指明正确的方向,让一个javascript文件在另一个单独的javascript文件之后运行吗
- 在CSS的未来版本中,仅固定了一个方向的位置
- 使用 JavaScript 触发 CSS 动画淡入和淡出 - 仅适用于一个方向
- 柔性滑动器2在一个方向上继续循环而不工作
- Phaser Box2d-在一个方向上锁定拖动
- jQuery悬停在图像上,一个方向运行良好,另一个方向跳动
- Cordova屏幕锁定方向不是一个功能
- 在一个角度的方向上移动精灵
- 如何在移动应用程序上仅在一个页面上锁定方向
- Nivo Slider滑动解决方案(不总是在一个方向上滑动)
- 让一个箭头指向另一个标记的方向
- HTML画布以恒定的速度在一个方向上移动一个对象
- JQuery图像旋转动画,工作在一个方向,而不是另一个
- 只允许向一个方向拖动ng-drag元素
- 如何使圆形旋转滑块只改变一个方向
- 有没有办法在一个方向上缩放图像
- 仅在一个方向上移动的插件幻灯片