我有一个Cordova应用程序运行Cordova CLI 6.4.0。在加载期间,有一个空白的白色屏幕,在一个坚实的4-6秒的负载后,飞溅屏幕。同样的事情发生在应用程序重新加载过程中。无论是在platform.ready事件之前还是内部,应用程序都不会触发任何事件。在搜索之后,人们似乎在类似的问题上取得了一些成功,主要围绕着下面的配置选项,这些建议或想法都没有奏效。
更新
我似乎已经取得了一些进展,我想我更了解这里发生了什么。在这里的另一篇文章中,我将下面的行添加到我的config.xml中
<preference name="AutoHideSplashScreen" value="false" />
<preference name="SplashScreenDelay" value="10000"/>现在的行为,这两个,是Splash屏幕显示(很长时间,通常约9秒),然后飞溅消失,我的应用程序加载。所以它不再是一个邪恶的白色屏幕,只是一个非常缓慢的加载应用程序,这是我的问题。
/Update
Screen -> 4-6秒空白白色屏幕->,然后应用程序加载并触发deviceReady。这种情况发生在SplashScreenDelay=2000上
或者,它根本不会显示启动屏幕,而是在应用程序加载之前有8-9秒的空白白屏幕。这种情况发生在SplashScreenDelay=0上
我在我的主应用程序的构造函数中有console.logs,在platform.ready上,直到毁灭的白色屏幕被解决和消失之前,我都不会开火。
我试过以下几种选择
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="2000" />和
<preference name="SplashScreenDelay" value="0" />这很让人困惑,因为不是我的应用程序慢.它只是加载位,在启动页面和应用程序加载之间有一个空白的白屏幕,然后再发生其他事情。我愿意尝试任何想法,因为它在这个州基本上是不可发布的。
这在iOS上根本没有发生,在构建和设置都相同的情况下,这是一个特定于安卓的问题。我正在运行的设备是一个Moto E2。
我正在使用Ionic和下面是一个包含插件的列表,因为这似乎是目前最有可能的罪魁祸首。我将不得不测试所有没有特定插件的一切,看看它是如何执行的。
cordova-plugin-console 1.0.5 "Console"
cordova-plugin-device 1.1.4 "Device"
cordova-plugin-facebook4 1.7.4 "Facebook Connect"
cordova-plugin-splashscreen 4.0.1 "Splashscreen"
cordova-plugin-statusbar 2.2.1 "StatusBar"
cordova-plugin-whitelist 1.3.1 "Whitelist"
ionic-plugin-keyboard 2.2.1 "Keyboard"这是我的完整图标/飞溅定义。
<platform name="android">
<allow-intent href="market:*" />
<icon platform="android" src="resources/icon.png" />
<icon platform="android" qualifier="ldpi" src="resources/icons/android/icon-36-ldpi.png" />
<icon platform="android" qualifier="mdpi" src="resources/icons/android/icon-48-mdpi.png" />
<icon platform="android" qualifier="hdpi" src="resources/icons/android/icon-72-hdpi.png" />
<icon platform="android" qualifier="xhdpi" src="resources/icons/android/icon-96-xhdpi.png" />
<icon platform="android" qualifier="xxhdpi" src="resources/icons/android/icon-144-xxhdpi.png" />
<icon platform="android" qualifier="xxxhdpi" src="resources/icons/android/icon-192-xxxhdpi.png" />
<splash platform="android" src="resources/splash.png" />
<splash platform="android" qualifier="ldpi" src="resources/screens/android/screen-ldpi-portrait.png" />
<splash platform="android" qualifier="mdpi" src="resources/screens/android/screen-mdpi-portrait.png" />
<splash platform="android" qualifier="hdpi" src="resources/screens/android/screen-hdpi-portrait.png" />
<splash platform="android" qualifier="xhdpi" src="resources/screens/android/screen-xhdpi-portrait.png" />
</platform>发布于 2016-12-27 17:35:11
找到另一个这样的答案,但我已经用下面的方法解决了
<preference name="AutoHideSplashScreen" value="false" />
<preference name="SplashScreenDelay" value="10000"/>这个应用程序仍然要花很长时间才能加载(通常大约是9秒),但我至少避免了白屏幕上的胡说八道。
发布于 2017-11-09 08:20:17
当您构建apk-文件时,确保在命令中包含“-prod”:
ionic cordova build --release --prod android这将优化性能,并将应用程序中的启动时间从15秒(调试生成)减少到3秒(生产生成)。
发布于 2017-02-06 11:19:27
我们可以通过减少资产来快速加载应用程序。但是如果这是不可能的,那么我们可以改进用户体验(而不是显示空白屏幕,我们可以显示启动屏幕,直到所有资产加载)。
在config.xml中,将自动启动屏幕设置为false。
<preference name="AutoHideSplashScreen" value="false" />。
为应用程序特定事件创建单独的javascript文件,并在index.html中链接该文件
在javascript文件中,捕获DeviceReady事件。在DeviceReady事件处理程序中,隐藏启动屏幕。请看下面的代码。
var app = {
// Application Constructor
initialize: function() {
document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
//You can register other plugin specific events here and handle them.
},
onDeviceReady: function() {
navigator.splashscreen.hide();
}
}
};
app.initialize();https://stackoverflow.com/questions/41309273
复制相似问题