【发布时间】:2016-02-05 12:39:44
【问题描述】:
我是 Cordova 的新手,我正在尝试让启动画面在 Android 上运行。我已经按照这封信学习了一些教程,并在此处查看了关于 SO 的问题,但它还没有工作。
我正在使用“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 目录,似乎设置正确。
下面的sn-p来自/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);
}
}
【问题讨论】:
-
你能发布主要活动代码吗?
-
Err.... 也许吧。我在哪里可以找到它? :) 我认为活动内容是特定于 Android 的,因为我使用的是 Cordova CLI,所以我不应该干预它。
-
在您的 android 项目 src 文件夹中的主要活动 java 文件将是他们的。
-
您的主要活动看起来很完美,但您是否正确添加了闪屏插件?
-
您使用的是哪个插件版本?该版本可以在
cordova plugins输出中看到。按照@jaydroider 的建议尝试cordova plugin rm splashscreen && cordova plugin add https://github.com/apache/cordova-plugin-splashscreen。或者尝试将<preference name="FadeSplashScreenDuration" value="500"/>添加到config.xml。