Android 启动画面不适用于 Cordova 5.0.0

Posted

技术标签:

【中文标题】Android 启动画面不适用于 Cordova 5.0.0【英文标题】:Android Splash Screen not working with Cordova 5.0.0 【发布时间】:2015-08-22 10:52:02 【问题描述】:

我无法加载启动画面图像?它闪烁白色,然后变黑,几秒钟后应用程序加载。我的config.xml如下:

我正在使用面向 android 的 Cordova 5.0.0 进行构建。我已将我的应用从成功构建的 PhoneGap 移植过来,并且启动画面可以正常工作。

config.xml

<platform name="android">
    <splash src="www/images/openingscenehdpi.png" density="hdpi"/>
    <splash src="www/images/openingsceneldpi.png" density="ldpi"/>
    <splash src="www/images/openingscenemdpi.png" density="mdpi"/>
    <splash src="www/images/openingscenexhdpi.png" density="xhdpi"/>                
    <preference name="android-minSdkVersion" value="14"/>
    <preference name="android-targetSdkVersion" value="19"/>
    <preference name="SetFullscreen" value="true"/>
    <preference name="orientation"  value="landscape"/>
</platform>

在阅读了所有其他类似问题后,我尝试了以下方法均未成功,但均未改变应用行为:

    标签内只有启动元素 在平台标签内外添加首选项 name="SplashScreen" value="screen" 在平台标签内外添加首选项 name="SplashScreen" value="splash" 将文件直接添加到位于platforms/android/res 的文件夹中 将 spashscreen javscipt 添加到 index.html

我已经按照文档并尝试了其他人的建议,现在我完全被难住了..

谁能帮忙?

【问题讨论】:

你没有解释问题。 我的意思是,您实际上想要实现什么?你的帖子还不清楚 哦,现在我明白了。那么在启动后检查你的首页,它可能有一些需要时间来加载的东西。最佳做法是在页面加载后加载资源。 你添加了闪屏插件 不要不使用启动画面插件,我想使用 config.xml 保持简单,它与 PhoneGap 很好地配合,文档说它应该工作但不适合我:-(。 【参考方案1】:

已修复! 缺少文档,您必须安装插件:

cordova plugin add cordova-plugin-splashscreen

在项目的根目录下有一个 res 文件夹,其中包含正确文件夹中的文件(config.xml 旁边)以及 config.xml 中的以下内容:

<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="5000" />
<preference name="SplashMaintainAspectRatio" value="true|false" />
<platform name="android">
        <splash src="res/drawable-hdpi/screen.png" density="hdpi"/>
    <splash src="res/drawable-ldpi/screen.png" density="ldpi"/>
    <splash src="res/drawable-mdpi/screen.png" density="mdpi"/>
    <splash src="res/drawable-xhdpi/screen.png" density="xhdpi"/>
    <splash src="res/drawable-xhdpi/screen.png" density="xxhdpi"/>
    <splash src="res/drawable-xhdpi/screen.png" density="xxxhdpi"/> 
</platform>

【讨论】:

【参考方案2】:

基于@Ben Jones 的回答,我添加了以下 javascript 以在我知道可以安全显示 HTML 内容的应用程序中隐藏启动画面。如果省略此步骤,则启动屏幕将显示任意时间(示例 XML 中为 5 秒)。

navigator.splashscreen.hide();

脚注:我在本地浏览器中测试我的应用程序,所以我也会检查插件是否存在,但这是可选的:

if (navigator.splashscreen)
    navigator.splashscreen.hide();

【讨论】:

【参考方案3】:

我尝试了此页面中的解决方案,但仍然不适合我。我不知道是不是因为我的 Android 或 Cordova 版本。我尝试和工作的(前两个步骤与此问题中的其他解决方案类似,区别在于第 3rd 点):

    安装闪屏插件:

    cordova plugin add cordova-plugin-splashscreen
    

    onDeviceReady函数的开头添加这一行:

    navigator.splashscreen.show();
    

    以及同一函数末尾的这一行(所有加载完成后):

    navigator.splashscreen.hide();
    

    定义指示横向或纵向的每个密度启动屏幕(在我的情况下,我对所有这些都使用相同的图像):

    <splash src="www/img/splash.png" density="land-hdpi"/>
    <splash src="www/img/splash.png" density="land-ldpi"/>
    <splash src="www/img/splash.png" density="land-mdpi"/>
    <splash src="www/img/splash.png" density="land-xhdpi"/>
    <splash src="www/img/splash.png" density="port-hdpi"/>
    <splash src="www/img/splash.png" density="port-ldpi"/>
    <splash src="www/img/splash.png" density="port-mdpi"/>
    <splash src="www/img/splash.png" density="port-xhdpi"/>
    

这是config.xml 文件在与启动屏幕相关的部分中的外观:

<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="5000" />
<preference name="FadeSplashScreen" value="false"/>
<platform name="android">
    <allow-intent href="market:*" />
    <splash src="www/img/splash/splash.png" density="land-hdpi"/>
    <splash src="www/img/splash/splash.png" density="land-ldpi"/>
    <splash src="www/img/splash/splash.png" density="land-mdpi"/>
    <splash src="www/img/splash/splash.png" density="land-xhdpi"/>
    <splash src="www/img/splash/splash.png" density="port-hdpi"/>
    <splash src="www/img/splash/splash.png" density="port-ldpi"/>
    <splash src="www/img/splash/splash.png" density="port-mdpi"/>
    <splash src="www/img/splash/splash.png" density="port-xhdpi"/>
</platform>

(并且闪屏在5秒之前被隐藏,因为我在onDeviceReady函数的末尾隐藏了它)

【讨论】:

以上是关于Android 启动画面不适用于 Cordova 5.0.0的主要内容,如果未能解决你的问题,请参考以下文章

Cordova 插件 Geolocation 不适用于 Android 版本 Kitkat

Cordova 文件插件不适用于 android sdk 30

Cordova 相机插件适用于模拟器,而不适用于 Android 设备

cordova-plugin-ionic-webview - 自定义方案不适用于 Android

Ajax请求不适用于cordova android应用程序

谷歌地图不适用于 ionic cordova run android