Cordova(Ionic):Splashscreen只在Android上运行一次

Cordova (Ionic) : Splashscreen only works one time on Android

本文关键字:运行 一次 只在 Ionic Splashscreen Cordova Android      更新时间:2023-09-26

我使用Cordova插件创建了一个Splashscreen,将插件添加到我的Ionic应用程序中,如下所示:

cordova plugin add org.apache.cordova.splashscreen

当我在安卓手机上安装该应用程序并第一次运行时,我看到启动屏幕正在工作。但如果我按下后退按钮退出应用程序,然后重新打开应用程序,这次我看不到启动屏幕,它会直接进入主屏幕。我认为这是因为当我按下后退按钮时,应用程序并没有完全关闭(退出)。因此,如果我转到仍在运行的应用程序列表,手动关闭我的应用程序(从正在运行的应用列表中),那么下次打开应用程序时,我会再次看到飞溅屏幕。

当按下后退按钮时,我尝试退出应用程序,使用:

function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, true);
}
function onDeviceReady() {
    document.addEventListener("backbutton", onBackKeyDown, false);
}
function onBackKeyDown()
{
 navigator.app.exitApp();
}

在我的JavaScript代码中,但它没有帮助。对此,什么是好的解决方案?

Splashscreen用于在加载应用程序时显示默认图像,我们不希望用户在应用程序启动时被黑屏所困扰。因此,android在coldstart上显示了启动屏幕(该应用程序在被杀时启动)。你通常不需要在hotstart上显示splashscreen,但如果你这样做了,你可以使用splashscreen-cordova插件公开的以下JavaScript方法:

navigator.splashscreen.show();
navigator.splashscreen.hide();

只要确保在platformready时调用这些即可。或者,您可以使用ngCordova为此提供一个可注入的服务api:http://ngcordova.com/docs/plugins/splashscreen/

处理恢复事件:

document.addEventListener('deviceready', function () {
  document.addEventListener('resume', yourAsyncResumeCallback, false);
});

您的应用程序的行为很奇怪。我的应用程序即使在后退按钮并重新打开后也会再次显示防溅屏。这是我的config.xml如果你不想让不推荐的版本从下面的标签中删除"gap:"并在version="1.0.0" 中重命名版本,它可以与splashscreen一起使用

<?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.pnghttps://i.stack.imgur.com/ALb1N.jpg和index.html当然资产(jqmobile.4.2.css和.js以及jquery1.11.3)本地为我的'.'''或使用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>