关于 android 的方向,我的 config.xml 有什么问题?
What is wrong in my config.xml regarding orientation on android?
我尝试了许多不同的方法来做一件简单的事情,让我的 phonegap 构建应用程序以将方向锁定为横向。
当前和不需要的(更不用说丑陋的)行为是,当我启动我的 android 应用程序时,几秒钟后,我看到屏幕(及其内容)处于纵向模式,然后 "locks" 本身变成风景。
我的 config.xml 怎么了?可能缺少什么?
<?xml version='1.0' encoding='utf-8'?>
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:android = "http://schemas.android.com/apk/res/android" xmlns:gap="http://phonegap.com/ns/1.0" id="myid" version="0.8.7" >
<gap:config-file platform="android" parent="/manifest/application" >
<application android:debuggable="false" />
<activity android:screenOrientation="landscape" android:configChanges="orientation" android:name=".Activity.SplashScreenActivity" />
</gap:config-file>
<gap:config-file platform="ios" parent="UIViewControllerBasedStatusBarAppearance" overwrite="true">
<false/>
</gap:config-file>
<preference name="orientation" value="landscape" />
<preference name="screen-orientation" value="landscape" />
<preference name="Orientation" value="landscape" />
<name>myappname</name>
<description>
best app
</description>
<author email="support@phonegap.com" href="http://phonegap.com">
PhoneGap Team
</author>
<content src="index.html" />
<preference name="fullscreen" value="true" />
<preference name="permissions" value="none" />
<preference name="target-device" value="universal" />
<preference name="webviewbounce" value="false" />
<preference name="prerendered-icon" value="true" />
<preference name="stay-in-webview" value="false" />
<preference name="ios-statusbarstyle" value="black-opaque" />
<preference name="detect-data-types" value="true" />
<preference name="exit-on-suspend" value="false" />
<preference name="show-splash-screen-spinner" value="true" />
<preference name="auto-hide-splash-screen" value="true" />
<preference name="disable-cursor" value="false" />
<preference name="android-minSdkVersion" value="7" />
<preference name="android-installLocation" value="auto" />
<preference name="EnableViewportScale" value="false" />
<preference name="DisallowOverscroll" value="true" />
<preference name="UIWebViewBounce" value="false" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="SplashScreenDelay" value="10000" />
<icon src="icon.png"/>
<gap:splash src="res/screen/android/splash.png" />
<platform name="android">
<!-- icons for android -->
<icon src="res/icon/android/icon-36-ldpi.png" density="ldpi" />
<icon src="res/icon/android/icon-48-mdpi.png" density="mdpi" />
<icon src="res/icon/android/icon-72-hdpi.png" density="hdpi" />
<icon src="res/icon/android/icon-96-xhdpi.png" density="xhdpi" />
</platform>
<gap:splash src="res/screen/android/splash.png" gap:platform="android" gap:qualifier="ldpi" />
<gap:splash src="res/screen/android/splash.png" gap:platform="android" gap:qualifier="mdpi" />
<gap:splash src="res/screen/android/splash.png" gap:platform="android" gap:qualifier="hdpi" />
<gap:splash src="res/screen/android/splash.png" gap:platform="android" gap:qualifier="xhdpi" />
<gap:splash src="res/screen/android/splash.png" gap:platform="android" gap:qualifier="fr-xhdpi" />
<gap:splash src="res/screen/android/splash.png" gap:platform="android" gap:qualifier="port-xxhdpi" />
<gap:splash src="res/screen/android/splash.png" gap:platform="android" gap:qualifier="land-xxhdpi" />
<!-- -->
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="320" height="480" />
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="640" height="960" />
<!-- iPhone 5 / iPod Touch (5th Generation) -->
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="640" height="1136" />
<!-- iPhone 6 -->
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="750" height="1334" />
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="1242" height="2208" />
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="2208" height="1242" />
<!-- iPad -->
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="768" height="1024" />
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="1024" height="768" />
<!-- Retina iPad -->
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="1536" height="2048" />
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="2048" height="1536" />
<gap:plugin name="com.phonegap.plugins.facebookconnect">
<param name="APP_ID" value="1636377466592822" />
<param name="APP_NAME" value="myfacebookapp" />
</gap:plugin>
<gap:plugin name="com.sharinglabs.cordova.plugin.cache" version="1.0.0" />
<gap:plugin name="com.rjfun.cordova.plugin.lowlatencyaudio" version="1.1.3" />
<gap:plugin name="com.phonegap.plugins.pushplugin" version="2.4.0" />
<gap:plugin name="org.apache.cordova.media" version="0.2.13" />
<gap:plugin name="org.apache.cordova.device" version="0.2.12" />
<gap:plugin name="net.yoik.cordova.plugins.screenorientation" version="1.3.1" />
<gap:plugin name="org.apache.cordova.splashscreen" version="0.3.4" />
<gap:plugin name="com.adobe.plugins.gaplugin" />
<gap:plugin name="net.bgta.phonegap.plugin.appversion" version="1.1.1" />
<access origin="*" subdomains="true"/>
</widget>
@totothegreat,
你的 config.xml
有几个问题
- 使用 Phonegap Build Docs,而不是常规文档。有细微差别。足以让你绊倒。
- 互联网上的例子也是五花八门,人们常常不清楚他们是在使用 Phonegap CLI 还是 Phonegap Build。清楚示例的含义。不行就问作者
- 设置横屏只需要一个设置。它在 documentation 中为:
<preference name="orientation" value="landscape" />
- 我还注意到您的图标和启动画面不正确。 这是
你的参考.
如果你不明白,你可以看看我的Demo for Mobile Popups. It is done in landscape mode. The source is on github。注意:有一瞬间,您可以看到应用程序旋转到横向模式。如果您仍然遇到问题,这可能是您的测试设备中的响应错误。这个问题的意义在这份报告中得到了最好的体现:
Android Fragmentation Visualized
too much test devices have this rotation stuff (in android), so is it
solvable?
我认为广泛的解决方案需要一些时间。
例如,我拥有一辆Sprout Channel Cubby which I bought for development for a client project. It costs about 0. I also have a Samsung Galaxy Tab 2 7.0。两者是有区别的。
我玩 Words with Friends,它总是需要纵向模式。在Cubby上,我经常看到程序在旋转,因为Cubby的默认模式是Landscape。在三星上,我也看到它在旋转(如果我处于横向模式),但应用程序在屏幕翻转之前更改为纵向模式。我相信发生这种情况是因为三星默认为纵向模式。
换句话说,如果最终用户已经将观看模式设置为"auto-rotate",您可以强制应用程序进入正确的模式,但总会有一些残留影响,而 效果 的数量在很大程度上取决于 OS 实施、硬件和编程。
除此之外还有数千个 Android 模型(请参阅 OpenSignals 的文章)。在什么时候,残留影响会最小?!?这是一个很难回答的问题。
我尝试了许多不同的方法来做一件简单的事情,让我的 phonegap 构建应用程序以将方向锁定为横向。
当前和不需要的(更不用说丑陋的)行为是,当我启动我的 android 应用程序时,几秒钟后,我看到屏幕(及其内容)处于纵向模式,然后 "locks" 本身变成风景。
我的 config.xml 怎么了?可能缺少什么?
<?xml version='1.0' encoding='utf-8'?>
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:android = "http://schemas.android.com/apk/res/android" xmlns:gap="http://phonegap.com/ns/1.0" id="myid" version="0.8.7" >
<gap:config-file platform="android" parent="/manifest/application" >
<application android:debuggable="false" />
<activity android:screenOrientation="landscape" android:configChanges="orientation" android:name=".Activity.SplashScreenActivity" />
</gap:config-file>
<gap:config-file platform="ios" parent="UIViewControllerBasedStatusBarAppearance" overwrite="true">
<false/>
</gap:config-file>
<preference name="orientation" value="landscape" />
<preference name="screen-orientation" value="landscape" />
<preference name="Orientation" value="landscape" />
<name>myappname</name>
<description>
best app
</description>
<author email="support@phonegap.com" href="http://phonegap.com">
PhoneGap Team
</author>
<content src="index.html" />
<preference name="fullscreen" value="true" />
<preference name="permissions" value="none" />
<preference name="target-device" value="universal" />
<preference name="webviewbounce" value="false" />
<preference name="prerendered-icon" value="true" />
<preference name="stay-in-webview" value="false" />
<preference name="ios-statusbarstyle" value="black-opaque" />
<preference name="detect-data-types" value="true" />
<preference name="exit-on-suspend" value="false" />
<preference name="show-splash-screen-spinner" value="true" />
<preference name="auto-hide-splash-screen" value="true" />
<preference name="disable-cursor" value="false" />
<preference name="android-minSdkVersion" value="7" />
<preference name="android-installLocation" value="auto" />
<preference name="EnableViewportScale" value="false" />
<preference name="DisallowOverscroll" value="true" />
<preference name="UIWebViewBounce" value="false" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="SplashScreenDelay" value="10000" />
<icon src="icon.png"/>
<gap:splash src="res/screen/android/splash.png" />
<platform name="android">
<!-- icons for android -->
<icon src="res/icon/android/icon-36-ldpi.png" density="ldpi" />
<icon src="res/icon/android/icon-48-mdpi.png" density="mdpi" />
<icon src="res/icon/android/icon-72-hdpi.png" density="hdpi" />
<icon src="res/icon/android/icon-96-xhdpi.png" density="xhdpi" />
</platform>
<gap:splash src="res/screen/android/splash.png" gap:platform="android" gap:qualifier="ldpi" />
<gap:splash src="res/screen/android/splash.png" gap:platform="android" gap:qualifier="mdpi" />
<gap:splash src="res/screen/android/splash.png" gap:platform="android" gap:qualifier="hdpi" />
<gap:splash src="res/screen/android/splash.png" gap:platform="android" gap:qualifier="xhdpi" />
<gap:splash src="res/screen/android/splash.png" gap:platform="android" gap:qualifier="fr-xhdpi" />
<gap:splash src="res/screen/android/splash.png" gap:platform="android" gap:qualifier="port-xxhdpi" />
<gap:splash src="res/screen/android/splash.png" gap:platform="android" gap:qualifier="land-xxhdpi" />
<!-- -->
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="320" height="480" />
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="640" height="960" />
<!-- iPhone 5 / iPod Touch (5th Generation) -->
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="640" height="1136" />
<!-- iPhone 6 -->
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="750" height="1334" />
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="1242" height="2208" />
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="2208" height="1242" />
<!-- iPad -->
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="768" height="1024" />
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="1024" height="768" />
<!-- Retina iPad -->
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="1536" height="2048" />
<gap:splash src="res/screen/android/splash.png" gap:platform="ios" width="2048" height="1536" />
<gap:plugin name="com.phonegap.plugins.facebookconnect">
<param name="APP_ID" value="1636377466592822" />
<param name="APP_NAME" value="myfacebookapp" />
</gap:plugin>
<gap:plugin name="com.sharinglabs.cordova.plugin.cache" version="1.0.0" />
<gap:plugin name="com.rjfun.cordova.plugin.lowlatencyaudio" version="1.1.3" />
<gap:plugin name="com.phonegap.plugins.pushplugin" version="2.4.0" />
<gap:plugin name="org.apache.cordova.media" version="0.2.13" />
<gap:plugin name="org.apache.cordova.device" version="0.2.12" />
<gap:plugin name="net.yoik.cordova.plugins.screenorientation" version="1.3.1" />
<gap:plugin name="org.apache.cordova.splashscreen" version="0.3.4" />
<gap:plugin name="com.adobe.plugins.gaplugin" />
<gap:plugin name="net.bgta.phonegap.plugin.appversion" version="1.1.1" />
<access origin="*" subdomains="true"/>
</widget>
@totothegreat,
你的 config.xml
- 使用 Phonegap Build Docs,而不是常规文档。有细微差别。足以让你绊倒。
- 互联网上的例子也是五花八门,人们常常不清楚他们是在使用 Phonegap CLI 还是 Phonegap Build。清楚示例的含义。不行就问作者
- 设置横屏只需要一个设置。它在 documentation 中为:
<preference name="orientation" value="landscape" />
- 我还注意到您的图标和启动画面不正确。 这是 你的参考.
如果你不明白,你可以看看我的Demo for Mobile Popups. It is done in landscape mode. The source is on github。注意:有一瞬间,您可以看到应用程序旋转到横向模式。如果您仍然遇到问题,这可能是您的测试设备中的响应错误。这个问题的意义在这份报告中得到了最好的体现: Android Fragmentation Visualized
too much test devices have this rotation stuff (in android), so is it solvable?
我认为广泛的解决方案需要一些时间。
例如,我拥有一辆Sprout Channel Cubby which I bought for development for a client project. It costs about 0. I also have a Samsung Galaxy Tab 2 7.0。两者是有区别的。
我玩 Words with Friends,它总是需要纵向模式。在Cubby上,我经常看到程序在旋转,因为Cubby的默认模式是Landscape。在三星上,我也看到它在旋转(如果我处于横向模式),但应用程序在屏幕翻转之前更改为纵向模式。我相信发生这种情况是因为三星默认为纵向模式。
换句话说,如果最终用户已经将观看模式设置为"auto-rotate",您可以强制应用程序进入正确的模式,但总会有一些残留影响,而 效果 的数量在很大程度上取决于 OS 实施、硬件和编程。
除此之外还有数千个 Android 模型(请参阅 OpenSignals 的文章)。在什么时候,残留影响会最小?!?这是一个很难回答的问题。