我们正在研究混合应用程序,因此从编码角度来看,大部分工作仅在HTML5,CSS3和Javascript / JQuery中进行。
能够在SO上找到相关的帖子
How to disable orientation change in Android?
但是,我们只需要在一个页面上锁定方向,没有自由在清单文件中添加设置。寻找可以使用Javascript调用的基于Javascript / JQuery的解决方案或Android插件?
答案 0 :(得分:0)
您可以在Android Manifest中指定每个活动的方向:
<activity
android:name=".activities.LoginActivity">
</activity>
<activity
android:name=".activities.HomeActivity"
android:screenOrientation="userLandscape">
</activity>
在上面的示例中,LoginActivity将在用户更改方向时旋转,但HomeActivity将始终处于横向状态。
答案 1 :(得分:0)
您可以通过调用Activity
以编程方式设置一个setRequestedOrientation()
的方向,然后在setContentView()
中调用onCreate()
,如下所示:
@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" />
答案 2 :(得分:0)
我对应用程序有类似的要求。它无法锁定方向,但我可以使用“deviceorientation”事件检测方向更改,该事件可以作为window.addEventListener("deviceorientation", hadlerFunction, true);
处理。我做的是,我显示了一个警告,提示用户改变tge方向。它不是一个混合应用程序。
但是,如果您按照[link] [1]
[1]:Ability to lock orientation of device with JavaScript in PhoneGap/Cordova你会得到一些问题的输入。
答案 3 :(得分:0)
找到一个非常简单的插件,可以完成这项工作:
非常容易使用:
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');
为我们工作。