Dav*_* D. 29 android dom-events angularjs cordova ionic-framework
我正在尝试禁用Cordova应用程序上的后退按钮.我正在使用AngularJS + Ionic Framework.我找到了关于这个的主题并尝试了下面的代码,但它绝对没有效果.任何的想法?谢谢!
的index.html
<head>
<script>
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
document.addEventListener("backbutton", function (e) {
e.preventDefault();
console.log("hello");
}, false );
}
</script>
</head>
Run Code Online (Sandbox Code Playgroud)
请注意,当我按下按钮时,我的控制台中显示"hello".
Dav*_* D. 39
终于找到了这个离子论坛帖子的答案:
$ionicPlatform.registerBackButtonAction(function () {
if (condition) {
navigator.app.exitApp();
} else {
handle back action!
}
}, 100);
Run Code Online (Sandbox Code Playgroud)
$ionicPlatform.registerBackButtonAction允许完全覆盖后退按钮的行为.第一个参数是回调函数,第二个参数是优先级(仅执行具有最高优先级的回调).
Muh*_*han 23
$ionicPlatform.registerBackButtonAction(function (event) {
event.preventDefault();
}, 100);
Run Code Online (Sandbox Code Playgroud)
这将阻止后退按钮功能.
Wes*_*ger 13
为了扩展David D的答案,我已经包含了返回实现.
把它放在你的应用程序.run功能中:
$ionicPlatform.registerBackButtonAction(function (event) {
if ($ionicHistory.currentStateName() === 'someStateName'){
event.preventDefault();
} else {
$ionicHistory.goBack();
}
}, 100);
Run Code Online (Sandbox Code Playgroud)
这在控制器中不起作用,它在应用程序范围内.