如何仅在移动应用程序的一个页面上锁定方向?

时间:2014-09-15 15:00:51

标签: javascript android jquery mobile

我们正在研究混合应用程序,因此从编码角度来看,大部分工作仅在HTML5,CSS3和Javascript / JQuery中进行。

能够在SO上找到相关的帖子

Orientation Lock

How to disable orientation change in Android?

但是,我们只需要在一个页面上锁定方向,没有自由在清单文件中添加设置。寻找可以使用Javascript调用的基于Javascript / JQuery的解决方案或Android插件?

4 个答案:

答案 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)

找到一个非常简单的插件,可以完成这项工作:

pg-plugin-screen-orientation

非常容易使用:

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');

为我们工作。