【问题标题】:Android Splash Screen not working with Cordova 5.0.0Android 启动画面不适用于 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>

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

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

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

谁能帮忙?

【问题讨论】:

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

标签: android cordova


【解决方案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 点):

      1. 安装闪屏插件:

        cordova plugin add cordova-plugin-splashscreen
        
      2. onDeviceReady函数的开头添加这一行:

        navigator.splashscreen.show();
        

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

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

        <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函数的末尾隐藏了它)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多