如何将我整个PhoneGap应用的屏幕定向固定为纵向?

19
如何配置Phonegap应用程序以仅固定为纵向模式,是否有可能通过CSS或JavaScript进行配置,以便我能够在各个平台上获得一致的行为。
我发现了这篇有用的文章使用加速度计检测移动设备的显示方向更改-跨平台方法
在此解释了如何检测方向,但我需要进行配置。
是否可以通过CSS3媒体查询实现?
4个回答

27
在AndroidManifest.xml文件的activity标签中添加如下代码以在竖屏模式下固定您的方向:

android:screenOrientation="portrait"

 android:screenOrientation="portrait"

或者在活动类中这样做:

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

我不想只为Android做这件事,有没有平台无关的方法? - Vinayak Bevinakatti
然后您必须在类文件中逻辑地设置方向。 - Maulik J
请您能否详细说明如何操作,麻烦您相应修改您的回答,感谢您的回复。 - Vinayak Bevinakatti
谢谢您的回复。我也遇到了同样的问题,但在PhoneGap文档中找不到相关内容。您能指出任何相关文档吗? - hallodom
@Maulik J 谢谢,这对我很有帮助! - avolquez

12

如果您正在使用PhoneGap Build,则可以使用config.xml将其设置为所有设备...

设置属性:orientation,可选值为defaultlandscapeportrait
例如:

< preference name="orientation" value="landscape" />

*请注意,default表示横向和纵向都已启用。

来源:
https://build.phonegap.com/docs/config-xml


4
没错,文档上是这么说的,但对我来说只有在 Android 清单配置时才能生效,而不能直接使用。 - Hola Soy Edu Feliz Navidad
1
我认为这只适用于使用Phonegap Build的情况,这是一个单独的工具? - hallodom
对我也不起作用...那是最好的解决方案,因为如果我改变清单,我将在再次构建PhoneGap应用程序后失去它。 - pjnovas
使用的版本是Cordova 4.0.0。我在我的config.XML文件中修复/放置了这行代码,它在Android上工作。App运行值=“portrait”或“landscape”模式独立。命令行方法它有效。 - gnganapath

2
请在您的清单文件中使用此代码。
<activity android:name=".DroidGap" 
android:label="@string/app_name"
android:screenOrientation="landscape" > 

0

我必须更新<path to phonegap app>/platform/android/AndroidManifest.xml,并设置android:screenOrientation="portrait"。可以将其设置为默认、横屏或竖屏。

请参见下面的完整示例:

     <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:name="HelloWorld" android:screenOrientation="portrait" android:theme="@android:style/Theme.Black.NoTitleBar">
        <intent-filter>

            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>

    </activity>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接