过去,调用navigator.app.exitApp()
只有几个绊脚石,但现在谷歌和苹果都给开发者带来了重大障碍。
deviceready
确保您在调用exit之前等待事件。您可能会考虑放置一个启动画面,或者将按钮灰显(禁用)或其他东西,直到deviceready
触发并加载 Cordova 库。
- 这是*障碍*。您现在需要添加一个
whitelist
插件,对于 Android 添加CSP
. 该插件是CSP
. 您可以通过将所有 Javascript(包括任何on*=
)和<style>
(和style=
)移动到单独的文件中来解决此问题。例外CSP
——使用任何在线资源。
在#1上,
将此添加到您的 javascript:
// Wait for PhoneGap to load
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
// alert("deviceready");
document.getElementById('exitApp').addEventListener('click', function() {
navigator.app.exitApp();
});
}
将此添加到您的 index.html:
<button id="exitApp">Exit</button>
在 #2 上,快速回答是:
将此添加到您的config.xml
<plugin name="cordova-plugin-whitelist" source="npm" spec="1.1.0" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!-- Required for iOS9 -->
注意您的应用程序现在不安全。保护您的应用程序由您决定。
将以下内容添加到您的index.html
<meta http-equiv="Content-Security-Policy"
content="default-src *;
style-src * 'self' 'unsafe-inline' 'unsafe-eval';
script-src * 'self' 'unsafe-inline' 'unsafe-eval';">
注意您的应用程序现在不安全。保护您的应用程序由您决定。当您准备好提高安全性时,
此白名单工作表应该会有所帮助。
如何:应用 Cordova/Phonegap 白名单系统