我一直在反复尝试为我的 Ionic 应用程序添加启动画面。我们正在使用 Phonegap 3.7.0 将其部署到 ios 和 android 设备,但似乎没有任何效果。奇怪的是,当我在模拟器中运行该应用程序时,会显示启动画面(例如:ionic emulate android)
使用此配置,图标可以正常工作,但启动画面无法正常工作。它显示一个空白屏幕,甚至没有 cordova 默认启动画面。
我的配置文件:
<content src="index.html"/>
<access origin="*"/>
<preference name="webviewbounce" value="false"/>
<preference name="UIWebViewBounce" value="false"/>
<preference name="DisallowOverscroll" value="true"/>
<preference name="BackupWebStorage" value="none"/>
<preference name="android-minSdkVersion" value="16"/>
<preference name="AutoHideSplashScreen" value="false"/>
<preference name="ShowSplashScreenSpinner" value="true"/>
<preference name="SplashScreenDelay" value="5000"/>
<preference name="SplashScreen" value="screen"/>
<gap:plugin name="org.apache.cordova.device"/>
<gap:plugin name="org.apache.cordova.network-information"/>
<gap:plugin name="org.apache.cordova.inappbrowser"/>
<gap:plugin name="uk.co.whiteoctober.cordova.appversion" version="0.1.4"/>
<gap:plugin name="org.apache.cordova.statusbar" version="0.1.4" source="pgb"/>
<gap:plugin name="com.ionic.keyboard" version="1.0.3" source="pgb"/>
<gap:plugin name="nl.x-services.plugins.socialsharing" version="4.3.8" source="pgb"/>
<gap:plugin name="fi.avaus.cordova.geolocation"/>
<gap:plugin name="org.apache.cordova.splashscreen" version="0.3.4"/>
<platform name="ios">
<icon src="resources/ios/icon/icon.png" gap:platform="ios" width="57" height="57"/>
<icon src="resources/ios/icon/icon@2x.png" gap:platform="ios" width="114" height="114"/>
<icon src="resources/ios/icon/icon-40.png" gap:platform="ios" width="40" height="40"/>
<icon src="resources/ios/icon/icon-40@2x.png" gap:platform="ios" width="80" height="80"/>
<icon src="resources/ios/icon/icon-50.png" gap:platform="ios" width="50" height="50"/>
<icon src="resources/ios/icon/icon-50@2x.png" gap:platform="ios" width="100" height="100"/>
<icon src="resources/ios/icon/icon-60.png" gap:platform="ios" width="60" height="60"/>
<icon src="resources/ios/icon/icon-60@2x.png" gap:platform="ios" width="120" height="120"/>
<icon src="resources/ios/icon/icon-60@3x.png" gap:platform="ios" width="180" height="180"/>
<icon src="resources/ios/icon/icon-72.png" gap:platform="ios" width="72" height="72"/>
<icon src="resources/ios/icon/icon-72@2x.png" gap:platform="ios" width="144" height="144"/>
<icon src="resources/ios/icon/icon-76.png" gap:platform="ios" width="76" height="76"/>
<icon src="resources/ios/icon/icon-76@2x.png" gap:platform="ios" width="152" height="152"/>
<icon src="resources/ios/icon/icon-small.png" gap:platform="ios" width="29" height="29"/>
<icon src="resources/ios/icon/icon-small@2x.png" gap:platform="ios" width="58" height="58"/>
<icon src="resources/ios/icon/icon-small@3x.png" gap:platform="ios" width="87" height="87"/>
<gap:splash src="resources/ios/splash/Default-568h@2x~iphone.png" gap:platform="ios" width="640" height="1136"/>
<gap:splash src="resources/ios/splash/Default-667h.png" gap:platform="ios" width="750" height="1334"/>
<gap:splash src="resources/ios/splash/Default-736h.png" gap:platform="ios" width="1242" height="2208"/>
<gap:splash src="resources/ios/splash/Default-Landscape-736h.png" gap:platform="ios" width="2208" height="1242"/>
<gap:splash src="resources/ios/splash/Default-Landscape@2x~ipad.png" gap:platform="ios" width="2048" height="1536"/>
<gap:splash src="resources/ios/splash/Default-Landscape~ipad.png" gap:platform="ios" width="1024" height="768"/>
<gap:splash src="resources/ios/splash/Default-Portrait@2x~ipad.png" gap:platform="ios" width="1536" height="2048"/>
<gap:splash src="resources/ios/splash/Default-Portrait~ipad.png" gap:platform="ios" width="768" height="1024"/>
<gap:splash src="resources/ios/splash/Default@2x~iphone.png" gap:platform="ios" width="640" height="960"/>
<gap:splash src="resources/ios/splash/Default~iphone.png" gap:platform="ios" width="320" height="480"/>
</platform>
<platform name="android">
<icon src="resources/android/icon/drawable-ldpi-icon.png" gap:platform="android" density="ldpi"/>
<icon src="resources/android/icon/drawable-mdpi-icon.png" gap:platform="android" density="mdpi"/>
<icon src="resources/android/icon/drawable-hdpi-icon.png" gap:platform="android" density="hdpi"/>
<icon src="resources/android/icon/drawable-xhdpi-icon.png" gap:platform="android" density="xhdpi"/>
<icon src="resources/android/icon/drawable-xxhdpi-icon.png" gap:platform="android" density="xxhdpi"/>
<icon src="resources/android/icon/drawable-xxxhdpi-icon.png" gap:platform="android" density="xxxhdpi"/>
<gap:splash src="resources/android/splash/drawable-land-ldpi-screen.png" gap:platform="android" density="land-ldpi"/>
<gap:splash src="resources/android/splash/drawable-land-mdpi-screen.png" gap:platform="android" density="land-mdpi"/>
<gap:splash src="resources/android/splash/drawable-land-hdpi-screen.png" gap:platform="android" density="land-hdpi"/>
<gap:splash src="resources/android/splash/drawable-land-xhdpi-screen.png" gap:platform="android" density="land-xhdpi"/>
<gap:splash src="resources/android/splash/drawable-land-xxhdpi-screen.png" gap:platform="android" density="land-xxhdpi"/>
<gap:splash src="resources/android/splash/drawable-land-xxxhdpi-screen.png" gap:platform="android" density="land-xxxhdpi"/>
<gap:splash src="resources/android/splash/drawable-port-ldpi-screen.png" gap:platform="android" density="port-ldpi"/>
<gap:splash src="resources/android/splash/drawable-port-mdpi-screen.png" gap:platform="android" density="port-mdpi"/>
<gap:splash src="resources/android/splash/drawable-port-hdpi-screen.png" gap:platform="android" density="port-hdpi"/>
<gap:splash src="resources/android/splash/drawable-port-xhdpi-screen.png" gap:platform="android" density="port-xhdpi"/>
<gap:splash src="resources/android/splash/drawable-port-xxhdpi-screen.png" gap:platform="android" density="port-xxhdpi"/>
<gap:splash src="resources/android/splash/drawable-port-xxxhdpi-screen.png" gap:platform="android" density="port-xxxhdpi"/>
</platform>
<icon src="icon.png" />
<gap:splash src="splash.png" />
正如 phonegap 文档所述:您的初始屏幕应保存为 png 文件。 它们是什么,我添加了平台标签“gap:platform”
并且默认启动画面必须命名为 splash.png 并且必须位于应用程序文件夹的根目录中。
这是我的项目树
root
- bower_components
- hooks
- node_modules
- platforms
- plugins
- resources
-- android
--- icon
--- splash
drawable-land-hdpi-screen.png
drawable-land-ldpi-screen.png
drawable-land-mdpi-screen.png
etc...
-- ios
--- icon
--- splash
Default-568h@2x~iphone.png
Default-667h.png
Default-736h.png
etc...
-- icon.png
-- splash.png
- scss
- www
bower.json
config.xml
gulpfile.js
icon.png
ionic.project
package.json
splash.png
http://i59.tinypic.com/9bhbw5.jpg
希望有人能给我一个解决方案 提前谢谢你
编辑:
我已经从运行闪屏的模拟器中反编译了 APK 文件,并从 phonegap build 中反编译了 APK 文件。似乎 phonegap 没有复制启动画面文件夹,也没有使用正确的 config.xml 文件。
来自 phonegap 构建的 config.xml
<?xml version="1.0" encoding="utf-8"?>
<widget id="io.cordova.helloCordova" version="2.0.0" xmlns="http://www.w3.org/ns/widgets">
<name> Hello Cordova
</name>
<description> A sample Apache Cordova application that responds to the deviceready
event. </description>
<author email="dev@cordova.apache.org" href="http://cordova.io"> Apache Cordova Team </author>
<access origin="http://*/*" />
<access origin="https://*/*" />
<access launch-external="yes" origin="tel:*" />
<access launch-external="yes" origin="geo:*" />
<access launch-external="yes" origin="mailto:*" />
<access launch-external="yes" origin="sms:*" />
<access launch-external="yes" origin="market:*" />
<preference name="loglevel" value="DEBUG" />
<preference name="webviewbounce" value="false" />
<preference name="UIWebViewBounce" value="false" />
<preference name="DisallowOverscroll" value="true" />
<preference name="BackupWebStorage" value="none" />
<preference name="android-minSdkVersion" value="16" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="ShowSplashScreenSpinner" value="true" />
<preference name="SplashScreenDelay" value="5000" />
<content src="index.html" />
<feature name="StatusBar">
<param name="android-package" onload="true" value="org.apache.cordova.statusbar.StatusBar" />
</feature>
<feature name="AppVersion">
<param name="android-package" value="uk.co.whiteoctober.cordova.AppVersion" />
</feature>
<feature name="Keyboard">
<param name="android-package" value="com.ionic.keyboard.IonicKeyboard" />
<param name="onload" value="true" />
</feature>
<feature name="InAppBrowser">
<param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser" />
</feature>
<feature name="NetworkStatus">
<param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" />
</feature>
<feature name="Device">
<param name="android-package" value="org.apache.cordova.device.Device" />
</feature>
<feature name="SocialSharing">
<param name="android-package" value="nl.xservices.plugins.SocialSharing" />
</feature>
<feature name="SplashScreen">
<param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
</feature>
<feature name="GeolocationAvailabilityChecker">
<param name="android-package" value="org.apache.cordova.geolocation.GeolocationAvailabilityChecker" />
</feature>
</widget>
看起来 phonegap 构建配置不正确
最佳答案
如果有人仍然遇到此问题,请在运行 ionic resources 命令后确保将以下内容添加到 config.xml 中:
<preference name="ShowSplashScreen" value="true" />
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="3000"/>
<preference name="AutoHideSplashScreen" value="true" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="FadeSplashScreen" value="false"/>
<feature name="SplashScreen">
<param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
</feature>
然后运行:
ionic build android
ionic run android
完成。
关于android - Phonegap/ionic 应用启动画面未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31557887/