Android Splash Screen无法与Cordova 5.0.0一起使用

时间:2015-06-08 04:26:19

标签: android cordova

我无法加载启动画面图像?它闪烁白色,然后变黑,几秒后应用程序加载。我的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.   
  3. 添加首选项名称=&#34; SplashScreen&#34;值=&#34;屏幕&#34;内部和外部平台标签
  4.   
  5. 添加首选项名称=&#34; SplashScreen&#34;值=&#34;溅&#34;内部和外部平台标签
  6.   
  7. 直接将文件添加到platforms / android / res
  8. 中的文件夹中   
  9. 将spashscreen javscipt添加到index.html
  10.   

我已按照文档并尝试了其他建议,现在我完全难过了..

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:10)

固定! 缺少文档,您必须安装插件:

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>

答案 1 :(得分:0)

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

navigator.splashscreen.hide();

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

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

答案 2 :(得分:0)

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

  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"/>
    
  4. 这是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功能的末尾)