我是Cordova的全新品牌,我正试图在Android上使用闪屏。我已经按照一些教程写了这封信,并在这里回顾了问题,但它还没有工作。
我正在使用' Cordova CLI'方法 - 这是我的/config.xml:
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.example.hello" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>HelloWorld</name>
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="2000" />
<description>
A sample Apache Cordova application that responds to the deviceready event.
</description>
<author email="dev@cordova.apache.org" href="http://cordova.io">
Apache Cordova Team
</author>
<content src="index.html" />
<plugin name="cordova-plugin-whitelist" spec="1" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
<splash src="res/screen/android/splash-logo.png" density="land-hdpi"/>
<splash src="res/screen/android/splash-logo.png" density="land-ldpi"/>
<splash src="res/screen/android/splash-logo.png" density="land-mdpi"/>
<splash src="res/screen/android/splash-logo.png" density="land-xhdpi"/>
<splash src="res/screen/android/splash-logo.png" density="port-hdpi"/>
<splash src="res/screen/android/splash-logo.png" density="port-ldpi"/>
<splash src="res/screen/android/splash-logo.png" density="port-mdpi"/>
<splash src="res/screen/android/splash-logo.png" density="port-xhdpi"/>
<icon density="ldpi" src="res/screen/android/icon.png" />
<icon density="mdpi" src="res/screen/android/icon.png" />
<icon density="hdpi" src="res/screen/android/icon.png" />
<icon density="xhdpi" src="res/screen/android/icon.png" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
</widget>
我知道每个密度应该有不同的图像尺寸,但这是一个测试项目所以请忽略它。
我已将cordova-plugin-splashscreen添加到我的项目中。
cordova plugin add cordova-plugin-splashscreen
仍然没有显示启动画面 - 当应用程序在模拟器上运行时,会出现黑屏。几秒钟后,黑屏消失,默认的设备就绪了。出现Cordova屏幕。
我做过其他地方建议的所有事情 - 你们有没有发现错误?
仅供参考我正在查看/ plataforms目录,似乎设置正确。
以下代码段来自/platforms/android/res/xml/config.xml:
<splash density="land-hdpi" src="res/drawable-land-xhdpi/screen.png" />
<splash density="land-ldpi" src="res/drawable-land-xhdpi/screen.png" />
<splash density="land-mdpi" src="res/drawable-land-xhdpi/screen.png" />
<splash density="land-xhdpi" src="res/drawable-land-xhdpi/screen.png" />
<splash density="port-hdpi" src="res/drawable-land-xhdpi/screen.png" />
<splash density="port-ldpi" src="res/drawable-land-xhdpi/screen.png" />
<splash density="port-mdpi" src="res/drawable-land-xhdpi/screen.png" />
<splash density="port-xhdpi" src="res/drawable-land-xhdpi/screen.png" />
<icon density="ldpi" src="res/screen/android/icon.png" />
<icon density="mdpi" src="res/screen/android/icon.png" />
<icon density="hdpi" src="res/screen/android/icon.png" />
<icon density="xhdpi" src="res/screen/android/icon.png" />
上面列出的每个目录下都有screen.png文件 - 所以看起来Cordova正在正常工作。
主要活动:
package com.example.hello;
import android.os.Bundle;
import org.apache.cordova.*;
public class MainActivity extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Set by <content src="index.html" /> in config.xml
loadUrl(launchUrl);
}
}
答案 0 :(得分:3)
我也在这个问题上挣扎了很长时间,发现问题出现在SplashScreenDelay
和FadeSplashScreenDuration
的值中。
如果查看SplashScreen.java,您会发现showSplashScreen
函数执行以下操作:
final int fadeSplashScreenDuration = getFadeDuration();
final int effectiveSplashDuration = Math.max(0, splashscreenTime - fadeSplashScreenDuration);
在您的配置中,您已将SplashScreenDelay
设置为2000毫秒。
getFadeDuration
查找FadeSplashScreenDuration
元素,未找到时(在本例中)回退到默认DEFAULT_SPLASHSCREEN_DURATION
,即3000毫秒,导致{的值为负值{1}}。显然,这将导致不显示闪屏。
所以解决方案是
effectiveSplashDuration
元素,其值设置为0.(或任何数字小于> 2000)FadeSplashScreenDuration
的值增加到4000(或任何数字更大超过3000)答案 1 :(得分:0)
尝试在cofig.xml文件中使用它。
{
"flux" : {
"name" : "flux"
},
"react" : {
"name" : "React"
}
}
这可能会解决您的问题。