Angular JS应用设备后退按钮必须具有确认对话框
Angular JS application device back button must have confirm dialog
我正在做一个AngularJS移动应用程序,它有一些模块。我需要在我的应用程序中访问设备的后退按钮,对话框必须具有"确定"和"取消"。
- 单击"确定"时,必须关闭应用程序。
- 单击"取消"时,它必须关闭对话框或返回 false。
我尝试了很多方法,但无法按预期得到结果。请任何人建议我解决这个问题。我喜欢以任何可能的方式完成此操作。请看我在堆栈溢出中的另一个问题。我已经给出了一些用于此问题的编码。
AngularJS设备后退按钮不起作用。?
我更喜欢使用$ionicPlatform.registerBackButtonAction并检查视图之间是否有导航历史记录(登录页面除外):
$ionicPlatform.registerBackButtonAction(function (e) {
if ($ionicHistory.backView() && $ionicHistory.backView().stateName != "login") {
// history back except login page
$ionicHistory.goBack();
} else {
var confirmPopup = $myPopup.confirm({
cssClass: 'center-txt-popup',
title: '<b>Closing app</b>',
template: "Do you want to exit?"
});
confirmPopup.then(function (close) {
if (close) {
navigator.app.exitApp();
}
});
}
e.preventDefault();
return false;
}, 101); // 1 more priority than back button
使用最适合您情况的SweetAlert
!
但是您需要导入一个 JS 文件sweet-alert.min.js
.
SweetAlert.swal({
title: "Are you sure?",
text: "You want to go back!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55", confirmButtonText: "OK",
cancelButtonText: "CANCEL",
closeOnConfirm: true,
closeOnCancel: true
}, function (isConfirm) {
if (isConfirm) {
//you logic goes here
}
});
希望这应该有所帮助!
您可以使用 ionic hardwareBackbutton,如下所示:
$ionicPlatform.onHardwareBackButton(function(event) {
event.preventDefault();
event.stopPropagation();
if (true) { // your check here
$ionicPopup.confirm({
title: 'System warning',
template: 'are you sure you want to exit?'
}).then(function(res) {
if (res) {
ionic.Platform.exitApp();
}
})
}
});
感谢支持人员,我已经通过获得伙伴的帮助完成了这个问题。请参阅下面的代码。:)
app.run(['$rootScope','$location', function($rootScope,$location) {
document.addEventListener("deviceready", function() {
console.log("deviceready");
document.addEventListener("backbutton", onBackKeyDown, false);
function onBackKeyDown(e) {
e.preventDefault();
if ($location.path() === "/login" || $location.path() === "/home") {
var r=confirm("exit");
if(r==true){
console.log("not exit");
navigator.app.exitApp();
}else {
navigator.app.goBack();
}
}else {
/* $ionicHistory.goBack(); */
window.history.back();
navigator.app.goBack();
}
}
}, 100);
$rootScope.$on('$routeChangeSuccess', function(event, current, previous) {
$rootScope.title = current.$$route.title;
});
}]);
相关文章:
- 删除确认对话框在第一次单击时不起作用
- javascript确认对话框有时会不断出现
- 如何为javascript方法放入jquery确认对话框
- 是否可以将JXBrowser显示的JS确认对话框的结果返回到调用它的JS部分
- 如何在批准露天共享中工作流的审核步骤之前添加确认对话框
- 弹出格式化的模式对话框,并在用户确认时转发
- 为什么JavaScript对话框(警告、确认)会停止页面重绘
- jQuery模态弹出的行为类似于确认和警报对话框
- MVC3 Ajax链接确认对话框使用jquery ui对话框
- 是否可以隐藏javascript确认对话框
- 通过Rails中的自定义Jquery对话框处理链接的确认
- Javascript/C# - 满足语句条件时的确认对话框
- 如何添加Facebook FB.ui对话框确认消息
- 在按下对话框“保存”按钮后创建对话框确认
- 用户不会显示 JQuery 模式对话框确认
- 启动对话框确认单击确认事件
- Jquery对话框确认到一个特定的带有php变量的href链接
- 如何构建一个jQuery对话框确认(是/否),可以在应用程序的任何地方工作
- jQuery对话框确认删除不会触发删除
- 在Code Behind/ASP.net中基于用户输入显示模态对话框/确认框