适用于Android的Phonegap CLI构建未显示启动画面

时间:2015-11-20 14:53:39

标签: android cordova splash-screen

关于Splashscreens和Icons主题的Phonegap CLI文档建议如下

  

SplashScreen(字符串,默认为splash):文件名减去res / drawable目录中的扩展名。各种资产必须在各个子目录中共享此通用名称。

<preference name="SplashScreen" value="mySplash"/>

我按如下方式配置了我的Phonegap CLI项目

project folder
|
res
  |
  ---port-ldpi.png
  |
  ---land-ldpi.png
  |
  --- ...
  |
  --- land-xhdpi.png

完成后我写了我的项目级config.xml文件

<preference name="SplashScreenDelay" value="12000"/>
<preference name="SplashScreen" value="screen"/>        
<splash src="res/port-ldpi.png" density="port-ldpi"/>
<splash src="res/land-ldpi.png" density="land-ldpi"/>
<splash src="res/port-mdpi.png" density="port-mdpi"/>
<splash src="res/land-mdpi.png" density="land-mdpi"/>
<splash src="res/port-hdpi.png" density="port-hdpi"/>
<splash src="res/land-hdpi.png" density="land-hdpi"/>
<splash src="res/port-xhdpi.png" density="port-xhdpi"/>
<splash src="res/land-xhdpi.png" density="land-xhdpi"/> 

然后我发出了phonegap build android --release -d >> /tmp/result.txt并检查了/tmp/result.txt中的输出。我展示了以下几行

copying image from /path/to/my/project/res/port-ldpi.png to     
/path/to/my/project/platforms/android/res/drawable-port-ldpi/screen.png

copying image from /path/to/my/project/res/land-ldpi.png to     
/path/to/my/project/platforms/android/res/drawable-land-ldpi/screen.png

.....

copying image from /path/to/my/project/res/land-xhdpi.png to     
/path/to/my/project/platforms/android/res/drawable-land-xhdpi/screen.png

最后,我通过7-zip打开它来检查生成的APK。在res文件夹中,我找到了以下内容

drawable-port-ldpi-v4/screen.png
drawable-land-ldpi-v4/screen.png
...
drawable-land-xhdpi-v4/screen.png

图像与我在/project/res文件夹中提供的图像一致。最后,我检查了输出以确保它以Command finished with error code 0:行终止。

然后我安装了我的应用程序并运行它 - 没有启动画面。

为了获得良好的衡量标准 - 尽管它作为一项要求毫无意义 - 我在包装了闪光灯后重复了上述内容。

中config.xml文件的图标位
<platform name='android'>


</platform>

部分 - 它没有任何区别。奇怪的是,以完全相同的方式分配的图标完美运行。我想确定我实际上为我的Huwaei Holly手机的分辨率提供了一个闪屏,我正在测试它,所以我使用了稍微不同的图标图像。安装显示XHDPI图标,以便在应用启动时按权限显示XHDPI启动画面

这是一个经常讨论的主题,但我没有看到我在这里做错了。

为了完整性,我应该提到

  • Phonegap CLI版本:5.3.6
  • 在Honor Holly上测试,Android版本4.4.2

1 个答案:

答案 0 :(得分:1)

我发布的答案是为了让任何遇到此线程的人受益。关于splashscreens主题的Cordova / Phonegap CLI文档非常混乱。以下是一些可以帮助您的提示

  • 构建config.xml文件时,您需要以<splash src="res/{$name}.9.png" density="{$name}"/>格式指定各种闪屏图像的位置。 .9.是可选的 - 如果您使用的是9个补丁图像,请使用
  • 您还需要拥有<preference name="SplashScreen" value="screen"/>行。这是不变的。与文档似乎意味着你没有选择的价值相反 - screen只有screen才有效。
  • 图像的原始位置无关紧要 - 最好将其放在项目文件夹内的文件夹中,res。如果您将其放在www文件夹中,最终会得到两张图片副本 - 其中一张从未使用过。
  • 当Phonegap CLI构建您的项目时,它会将您的图像复制到platforms/android/res/drawable-port|land-??dpi-v4。我不确定为什么v4,但那就是它。正是这些图像用于显示启动画面
  • 最重要的是在Android初始屏幕上,自动启动时不会显示。要让他们出现,你必须做两件事

    1. 在项目中加入cordova-plugin-splashscreen插件
    2. 调用navigator.splashscreen.show() - 通常来自deviceReady事件

最后,要控制启动画面的持续时间,您需要指定<preference name="SplashScreenDelay" value="..."/>,其中值以毫秒为单位。

对于很多开发人员来说,如果Cordova文档在Android上有优势提及不会自动显示启动画面,那将会对很多开发人员有所帮助。