Cordova(Ionic):Splashscreen 仅在 Android 上工作一次
Cordova (Ionic) : Splashscreen only works one time on Android
我通过将插件添加到我的 Ionic 应用程序来使用 Cordova 插件创建了一个闪屏:
cordova plugin add org.apache.cordova.splashscreen
当我第一次在 Android phone 和 运行 上安装该应用程序时,我看到启动画面正在运行。但是,如果我按后退按钮退出应用程序,然后重新打开应用程序,这次我看不到启动画面,而是直接进入主屏幕。我认为这是因为当我按下后退按钮时应用程序没有完全关闭(退出)。因此,如果我转到静止 运行ning 应用程序列表并手动关闭我的应用程序(从 运行ning 应用程序列表),那么下次我打开我的应用程序时,我会再次看到启动画面。
我尝试在按下后退按钮时退出应用程序:
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, true);
}
function onDeviceReady() {
document.addEventListener("backbutton", onBackKeyDown, false);
}
function onBackKeyDown()
{
navigator.app.exitApp();
}
在我的 JavaScript 代码中,但它没有帮助。
什么是好的解决方案?
启动画面用于在应用加载时显示默认图像,我们不希望用户在应用启动时因黑屏而感到沮丧。结果,android 在 coldstart
上显示启动画面(应用程序在被终止时正在启动)。您通常不需要在 hotstart
上显示闪屏,但如果需要,您可以使用以下由闪屏 cordova 插件公开的 JavaScript 方法:
navigator.splashscreen.show();
navigator.splashscreen.hide();
只需确保在 platform
为 ready
时调用这些。或者,您可以使用 ngCordova
为您提供可注射服务 api 为此:http://ngcordova.com/docs/plugins/splashscreen/
处理恢复事件:
document.addEventListener('deviceready', function () {
document.addEventListener('resume', yourAsyncResumeCallback, false);
});
您的应用的行为很奇怪。我的应用程序甚至在后退按钮并重新打开后再次显示启动画面。这是我的 config.xml 如果您不想弃用版本,它可以与启动画面一起使用 从下面的标签中删除 'gap:' 并在 version="1.0.0"
[=14 中重命名版本=]
<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns="http://www.w3.org/ns/widgets"
xmlns:gap="http://phonegap.com/ns/1.0"
id="testaplikacji"
versionCode="1"
version="1.0.0">
<name>Your app name</name>
<description>Desc</description>
<author>Author</author>
<gap:platform name="android">
</gap:platform>
<preference name="SplashScreen" value="splash" />
<preference name="SplashScreenDelay" value="5000" />
<gap:plugin name="org.apache.cordova.splashscreen" spec="1.0.0" source="pgb" />
<gap:splash src="splash.png" gap:platform="android" gap:qualifier="ldpi" width="500" height="500" />
<gap:splash src="splash.png" />
</widget>
, splash.png http://imgur.com/jmfxR4t 和 index.html 当然资产 (jqmobile1.4. 2.css and .js and jquery1.11.3) local 作为我的 '.\' 或使用 http:... 链接
<html>
<head>
<meta charset="UTF-8">
<link href=".\jquery.mobile-1.4.2.css" rel="stylesheet" type="text/css" />
<script src=".\jquery-1.11.3.js"></script>
<script src=".\jquery.mobile-1.4.2.js"></script>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
function init() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
//do stuff
}
</script>
</head>
<body onload="init()">
</body>
</html>
我通过将插件添加到我的 Ionic 应用程序来使用 Cordova 插件创建了一个闪屏:
cordova plugin add org.apache.cordova.splashscreen
当我第一次在 Android phone 和 运行 上安装该应用程序时,我看到启动画面正在运行。但是,如果我按后退按钮退出应用程序,然后重新打开应用程序,这次我看不到启动画面,而是直接进入主屏幕。我认为这是因为当我按下后退按钮时应用程序没有完全关闭(退出)。因此,如果我转到静止 运行ning 应用程序列表并手动关闭我的应用程序(从 运行ning 应用程序列表),那么下次我打开我的应用程序时,我会再次看到启动画面。
我尝试在按下后退按钮时退出应用程序:
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, true);
}
function onDeviceReady() {
document.addEventListener("backbutton", onBackKeyDown, false);
}
function onBackKeyDown()
{
navigator.app.exitApp();
}
在我的 JavaScript 代码中,但它没有帮助。 什么是好的解决方案?
启动画面用于在应用加载时显示默认图像,我们不希望用户在应用启动时因黑屏而感到沮丧。结果,android 在 coldstart
上显示启动画面(应用程序在被终止时正在启动)。您通常不需要在 hotstart
上显示闪屏,但如果需要,您可以使用以下由闪屏 cordova 插件公开的 JavaScript 方法:
navigator.splashscreen.show();
navigator.splashscreen.hide();
只需确保在 platform
为 ready
时调用这些。或者,您可以使用 ngCordova
为您提供可注射服务 api 为此:http://ngcordova.com/docs/plugins/splashscreen/
处理恢复事件:
document.addEventListener('deviceready', function () {
document.addEventListener('resume', yourAsyncResumeCallback, false);
});
您的应用的行为很奇怪。我的应用程序甚至在后退按钮并重新打开后再次显示启动画面。这是我的 config.xml 如果您不想弃用版本,它可以与启动画面一起使用 从下面的标签中删除 'gap:' 并在 version="1.0.0"
[=14 中重命名版本=]
<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns="http://www.w3.org/ns/widgets"
xmlns:gap="http://phonegap.com/ns/1.0"
id="testaplikacji"
versionCode="1"
version="1.0.0">
<name>Your app name</name>
<description>Desc</description>
<author>Author</author>
<gap:platform name="android">
</gap:platform>
<preference name="SplashScreen" value="splash" />
<preference name="SplashScreenDelay" value="5000" />
<gap:plugin name="org.apache.cordova.splashscreen" spec="1.0.0" source="pgb" />
<gap:splash src="splash.png" gap:platform="android" gap:qualifier="ldpi" width="500" height="500" />
<gap:splash src="splash.png" />
</widget>
, splash.png http://imgur.com/jmfxR4t 和 index.html 当然资产 (jqmobile1.4. 2.css and .js and jquery1.11.3) local 作为我的 '.\' 或使用 http:... 链接
<html>
<head>
<meta charset="UTF-8">
<link href=".\jquery.mobile-1.4.2.css" rel="stylesheet" type="text/css" />
<script src=".\jquery-1.11.3.js"></script>
<script src=".\jquery.mobile-1.4.2.js"></script>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
function init() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
//do stuff
}
</script>
</head>
<body onload="init()">
</body>
</html>