我正在使用Phonegap制作一个小应用程序,但navigator.app.exitApp()?
根本不起作用。
我用这个
调用一个JavaScript函数<input type='button' onclick='exitApp();'/>
JavaScript:
function exitApp() { navigator.app.exitApp(); }
想法?
答案 0 :(得分:6)
@Thomas,
过去,调用navigator.app.exitApp()
只有几个绊脚石,但现在谷歌和苹果都给开发者带来了重大障碍。
deviceready
个事件。你可能会考虑设置一个启动画面,或者灰色(禁用)按钮或其他东西,直到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 -->
注意您的应用程序现在已不确定。由您来保护您的APP。
将以下内容添加到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';">
注意您的应用程序现在已不确定。由您来保护您的APP。
当您准备好更安全时,此白名单工作表应该会有所帮助
HOW TO: apply the Cordova/Phonegap the whitelist system
答案 1 :(得分:2)
使用以下内容:
function backKeyDown() {
navigator.notification.confirm("Are you sure you want to exit?", onConfirm, "Please Confirm", "Yes,No");
}
function onConfirm(button) {
if(button==2){//If User selected No, then we just do nothing
return;
}else{
navigator.app.exitApp();// Otherwise we quit the app.
}
}
您必须安装以下插件:
cordova plugin install org.apache.cordova.dialogs
答案 2 :(得分:1)
您也可以在设备就绪回拨中添加一个监听器
onDeviceReady: function () {
document.addEventListener('backbutton', function(e){
e.preventDefault();
//TODO: throw up your dialog here!
}, true);
//other stuff here
}
答案 3 :(得分:0)
只需在此行中的任何地方使用(Ionic 3即可正常工作)
navigator.app.exitApp();
仅此而已。享受您的编码...