以前只需要调用 navigator.app.exitApp()
,但现在谷歌和苹果都为开发者添加了重大障碍。
- 确保在调用 exit 前等待
deviceready
事件。您可以考虑添加启动画面或将按钮变灰(禁用)等操作,直到 deviceready
触发并加载 Cordova 库。
- 这就是 *障碍*。现在,您需要添加一个
whitelist
插件,并为 Android 添加 CSP
。插件对于 CSP
是必需的。您可以通过将所有 JavaScript(包括任何 on*=
)和 <style>
(以及 style=
)放入单独的文件中来规避此问题。例外情况是 CSP
- 使用任何在线资源。
关于第一点,
请将以下内容添加到您的 JavaScript 代码中:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
document.getElementById('exitApp').addEventListener('click', function() {
navigator.app.exitApp();
});
}
将以下内容添加到您的index.html文件中:
<button id="exitApp">Exit</button>
在第二点,简短的答案是:将此添加到您的
config.xml
文件中。
<plugin name="cordova-plugin-whitelist" source="npm" spec="1.1.0" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!
注意:您的应用当前存在安全风险。需要您自行确保应用的安全性。
请将以下内容添加到您的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 白名单系统