PhoneGap - navigator.app.exitApp() 不工作
PhoneGap - navigator.app.exitApp() Not Working
我正在使用 Phonegap 制作一个小应用程序,但 navigator.app.exitApp()?
根本无法运行。
- 这是我的第一个混合应用程序。
- 我的目标平台是Android5
- 我正在使用 Cordova CLI 在 Windows 上进行开发。
我用这个
调用了一个JavaScript函数
<input type='button' onclick='exitApp();'/>
JavaScript:
function exitApp() { navigator.app.exitApp(); }
想法??
使用以下内容:
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
您也可以只在设备就绪回调中添加一个侦听器
onDeviceReady: function () {
document.addEventListener('backbutton', function(e){
e.preventDefault();
//TODO: throw up your dialog here!
}, true);
//other stuff here
}
过去调用 navigator.app.exitApp()
只是一些绊脚石,但现在 Google 和 Apple 都为开发人员设置了主要障碍。
- 确保在调用 exit 之前等待
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 -->
请注意,您的应用现在不安全。保护您的应用程序取决于您。
将以下内容添加到您的 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';">
请注意,您的应用现在不安全。保护您的应用程序取决于您。
当您准备好提高安全性时,这份 白名单 工作表应该会有所帮助。
HOW TO: apply the Cordova/Phonegap the whitelist system
只需在这一行中需要的地方使用(Ionic 3 可以正常工作)
navigator.app.exitApp();
就是这样。享受你的编码...
我正在使用 Phonegap 制作一个小应用程序,但 navigator.app.exitApp()?
根本无法运行。
- 这是我的第一个混合应用程序。
- 我的目标平台是Android5
- 我正在使用 Cordova CLI 在 Windows 上进行开发。
我用这个
调用了一个JavaScript函数<input type='button' onclick='exitApp();'/>
JavaScript:
function exitApp() { navigator.app.exitApp(); }
想法??
使用以下内容:
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
您也可以只在设备就绪回调中添加一个侦听器
onDeviceReady: function () {
document.addEventListener('backbutton', function(e){
e.preventDefault();
//TODO: throw up your dialog here!
}, true);
//other stuff here
}
过去调用 navigator.app.exitApp()
只是一些绊脚石,但现在 Google 和 Apple 都为开发人员设置了主要障碍。
- 确保在调用 exit 之前等待
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 -->
请注意,您的应用现在不安全。保护您的应用程序取决于您。
将以下内容添加到您的 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';">
请注意,您的应用现在不安全。保护您的应用程序取决于您。
当您准备好提高安全性时,这份 白名单 工作表应该会有所帮助。
HOW TO: apply the Cordova/Phonegap the whitelist system
只需在这一行中需要的地方使用(Ionic 3 可以正常工作)
navigator.app.exitApp();
就是这样。享受你的编码...