【问题标题】:Cordova Splash Screen not displaying imageCordova 启动画面不显示图像
【发布时间】:2016-11-09 08:12:14
【问题描述】:

我正在使用 Cordova 开发应用程序,但我无法让插件“cordova-plugin-splashscreen”在 Android 上运行(我只在 Android 上测试过)。

我已经使用 cordova cli 工具安装了插件:

$ cordova plugin add cordova-plugin-splashscreen

这些是我与插件相关的 config.xml 条目:

<platform name="android">
    ...
    <splash src="res/screen/android/splash.png" density="port-hdpi" />
    <splash src="res/screen/android/splash.png" density="port-ldpi" />
    <splash src="res/screen/android/splash.png" density="port-mdpi" />
    <splash src="res/screen/android/splash.png" density="port-xhdpi" />
    <splash src="res/screen/android/splash.png" density="port-xxhdpi" />
    <splash src="res/screen/android/splash.png" density="port-xxxhdpi" />

    <splash src="res/screen/android/splash.png" density="land-hdpi" />
    <splash src="res/screen/android/splash.png" density="land-ldpi" />
    <splash src="res/screen/android/splash.png" density="land-mdpi" />
    <splash src="res/screen/android/splash.png" density="land-xhdpi" />
    <splash src="res/screen/android/splash.png" density="land-xxhdpi" />
    <splash src="res/screen/android/splash.png" density="land-xxxhdpi" />
</platform>
...
<preference name="AutoHideSplashScreen" value="true" />
<preference name="SplashScreenDelay" value="10000" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="ShowSplashScreenSpinner" value="false" />

初始屏幕不是显示预期的“res/screen/android/splash.png”,而是显示默认的cordova图标或只是一个灰色的空屏幕。

【问题讨论】:

  • 可能相关:我也在项目中使用插件“cordova-plugin-crosswalk-webview”。
  • 也试试
  • 尝试添加这一行,没有效果。
  • 更新:我尝试删除 Crosswalk 无济于事。
  • 可能与此错误有关:issues.apache.org/jira/browse/CB-9417

标签: android cordova


【解决方案1】:

目前推荐的解决方案:

将 cordova-android 更新到版本 6.1.0,该错误不再存在:

$ cordova platform rm android
$ cordova platform add android@6.1.0

解决方法,记录在案:

通过手动替换资产“解决”:

platforms/android/res/*

问题似乎是由以下错误引起的:https://issues.apache.org/jira/browse/CB-12077

【讨论】:

  • 不,这不是错误,这是另一个错误,已在 cordova-android 6.1.0 中修复,只需更新您的平台,忘记您的解决方法
  • 很公平,你能链接导致问题的错误吗?我想添加它以用于文档目的。
  • 或者更好的是,将其添加为对问题的回复,我将接受它作为问题的答案。
【解决方案2】:

补充 etoscnyl 的答案,使用 Cordova 6.4.0 时不要输入:

cordova platform add android

请输入:

cordova platform add android@6.1.0

【讨论】:

  • 正确,我会将其添加到我的答案中。
【解决方案3】:

尝试像这样编辑您的 xml,对我来说它可以工作。我已经安装了这个包

cordova plugin add cordova-plugin-splashscreen

我使用这个 xml,但只是不同的图像,这包括你的

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

    <splash src="res/screen/android/splash.png" density="land-hdpi" />
    <splash src="res/screen/android/splash.png" density="land-ldpi" />
    <splash src="res/screen/android/splash.png" density="land-mdpi" />
    <splash src="res/screen/android/splash.png" density="land-xhdpi" />
    <splash src="res/screen/android/splash.png" density="land-xxhdpi" />
    <splash src="res/screen/android/splash.png" density="land-xxxhdpi" />
</platform>

尝试在deviceready 事件中也使用show(),也许会有所帮助。

navigator.splashscreen.show();

【讨论】:

  • 试过这个,不幸的是它没有工作。你也在使用 Crosswalk 插件吗?
  • 编辑后更新:尝试添加 navigator.splashscreen.show();,结果是默认的科尔多瓦图标永久显示为启动画面。
【解决方案4】:

在你的项目中添加这个cordova 插件

cordova plugin add cordova-plugin-splashscreen

Android 的启动画面:-

<platform name="android">

<splash src="res/screen/android/splash-land-hdpi.png" density="land-hdpi"/>
<splash src="res/screen/android/splash-land-ldpi.png" density="land-ldpi"/>
<splash src="res/screen/android/splash-land-mdpi.png" density="land-mdpi"/>
<splash src="res/screen/android/splash-land-xhdpi.png" density="land-xhdpi"/>

<splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi"/>
<splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi"/>
<splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi"/>
<splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi"/>

IOS的闪屏:-

<platform name="ios">
<splash src="res/screen/ios/Default~iphone.png" width="320" height="480"/>
<splash src="res/screen/ios/Default@2x~iphone.png" width="640" height="960"/>
<splash src="res/screen/ios/Default-Portrait~ipad.png" width="768" height="1024"/>
<splash src="res/screen/ios/Default-Portrait@2x~ipad.png" width="1536" height="2048"/>
<splash src="res/screen/ios/Default-Landscape~ipad.png" width="1024" height="768"/>
<splash src="res/screen/ios/Default-Landscape@2x~ipad.png" width="2048" height="1536"/>
<splash src="res/screen/ios/Default-568h@2x~iphone.png" width="640" height="1136"/>
<splash src="res/screen/ios/Default-667h.png" width="750" height="1334"/>
<splash src="res/screen/ios/Default-736h.png" width="1242" height="2208"/>
<splash src="res/screen/ios/Default-Landscape-736h.png" width="2208" height="1242"/>

然后将其添加到 config.xml 页面中

<preference name="AutoHideSplashScreen" value="true" />
<preference name="SplashScreenDelay" value="3000" />

【讨论】:

    猜你喜欢
    • 2014-05-05
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 2021-12-17
    • 1970-01-01
    相关资源
    最近更新 更多