我是否知道如何创建一个警告对话框,询问用户当用户按下硬件后退按钮时是否确认退出cordova中的inappbrowser?我曾尝试使用ref.addEventListener(' exit',onBackKeyDown);做到但没有成功。请帮助我并提供任何解决方案。非常感谢你。
答案 0 :(得分:0)
使用" _blank" 代替" _self" 。 '退出'如果在现有视图中打开外部源,则会触发事件。
var ref = window.open('http://google.com', '_blank', 'location=no');
ref.addEventListener('exit', function(event){ Exit(); });
function Exit(){
navigator.notification.confirm(
'Do you want to exit app?',
function(i){
if(i==2)
{
navigator.app.exitApp(); //This will Close the App
}
},
'App Name',
'Cancel,Exit'
);
}
希望这有助于你
答案 1 :(得分:0)
要创建一个警告对话框,询问用户当用户按下硬件后退按钮时是否确认退出cordova中的inappbrowser,您需要:
A)修改位于your_project / platforms / android / src / org / apache / cordova / inappbrowser /的InAppBrowserDialog.java。
B)添加import android.content.DialogInterface;添加所需的导入。
C)修改onBackPressed()函数
FROM:
public void onBackPressed () {
if (this.inAppBrowser == null) {
this.dismiss();
} else {
// better to go through the in inAppBrowser
// because it does a clean up
if (this.inAppBrowser.hardwareBack() && this.inAppBrowser.canGoBack()) {
this.inAppBrowser.goBack();
} else {
this.inAppBrowser.closeDialog();
}
}
}
TO:
public void onBackPressed() {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context)
.setTitle("Exit")
.setMessage("You are about to exit, are you sure?")
.setPositiveButton("Exit", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which){
if (inAppBrowser == null) {
dismiss();
}
else {
// better to go through the in inAppBrowser
// because it does a clean up
if (inAppBrowser.hardwareBack() && inAppBrowser.canGoBack()) {
inAppBrowser.goBack();
} else {
inAppBrowser.closeDialog();
}
}
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
dialog.cancel();
}
});
alertDialogBuilder.create();
alertDialogBuilder.show();
}
答案 2 :(得分:0)
要在单击后退按钮后显示弹出确认。
首先通过运行“ cordova plugin add cordova-plugin-dialogs”安装对话框插件。
然后通过运行“ cordova plugin add https://github.com/lesteenman/cordova-plugin-injectview.git”来安装cordova-plugin-injectview
在由inAppBrowser加载的页面中添加以下代码。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
document.addEventListener("backbutton", onBackKeyDown, false);
}
function onBackKeyDown(e) {
e.preventDefault();
navigator.notification.confirm("Are you sure you want to exit ?", onConfirm, "Confirmation", "Yes,No");
}
function onConfirm(button) {
if(button==1){
navigator.app.exitApp();
}else{
return;
}
}