在ionic on registering on HardwareBackButton事件中,后退按钮仍然使页面导航到上
in ionic on registering onHardwareBackButton event the back button still make page to navigate previous page
我是离子的新手。我使用的是ionic的onHardwareBackButton事件,该事件工作正常,它需要我注册函数,但在注册函数后,它仍在导航到主页。我在硬件后退按钮事件功能上显示了cordova确认对话框,这样在点击取消按钮后,他可以导航到主页,但现在弹出窗口也来了,页面也在同一时间导航回来。我搜索并尝试了许多代码,如
e.preventDefault()
e.stopPropagation()
他们两个都不工作我也尝试过registerBackButtonAction事件,但当我离开页面时,它并没有被注销。我被这个问题困扰了好几个小时。下面给出了我正在使用的代码。。
//this is register event i have used
showalertPopup = function(){
//showing popup
}
$scope.$on '$ionicView.enter', (event, view)->
$ionicPlatform.registerBackButtonAction showalertPopup, 100
//like this i am diregistering event
$scope.$on '$ionicView.leave', (event, view)->
$ionicPlatform.offHardwareBackButton showalertPopup
代替寄存器BackButtonAction,我在HardwareBackButton 上使用了
这里可以做的是优先级为100的registerBackButtonAction
(请参阅文档):
现有后退按钮挂钩的优先级如下:
返回到上一个视图=100
关闭侧菜单=150
解散模式=200
关闭行动单=300
取消弹出窗口=400
解除加载覆盖=500
因此,基本上,您正在覆盖"返回到上一个视图"操作
当你离开视图时,你需要一个处理程序来注销:
var backbuttonRegistration = null;
$scope.$on('$ionicView.enter', function(event, viewData) {
backbuttonRegistration = $ionicPlatform.registerBackButtonAction(function(e) {
e.preventDefault();
showalertPopup();
}, 100);
});
$scope.$on('$ionicView.leave', function(event, viewData) {
if (backbuttonRegistration)
{
backbuttonRegistration();
}
});
根据文件,registerBackButtonAction
:
返回:一个函数,当被调用时,将取消注册backButtonAction。
你的控制器应该看起来像这样:
.controller('homeController', function($scope, $ionicPopup, $ionicPlatform) {
function showalertPopup() {
var alertPopup = $ionicPopup.alert({
title: 'Don''t eat that!',
template: 'It might taste good'
});
alertPopup.then(function(res) {
console.log('Thank you for not eating my delicious ice cream cone');
});
}
var backbuttonRegistration = null;
$scope.$on('$ionicView.enter', function(event, viewData) {
backbuttonRegistration = $ionicPlatform.registerBackButtonAction(function(e) {
e.preventDefault();
showalertPopup();
}, 100);
});
$scope.$on('$ionicView.leave', function(event, viewData) {
if (backbuttonRegistration)
{
backbuttonRegistration();
}
});
});
PS:
你可以使用最高优先级的registerBackButtonAction
——比方说1000——它会起作用:
backbuttonRegistration = $ionicPlatform.registerBackButtonAction(function(e) {
e.preventDefault();
showalertPopup();
}, 1000);
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- angular 1.5应用程序中的导航栏
- 无法从jquery Mobile导航栏重定向到另一个页面
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 导航到特定事件的另一个变量页面
- MVC 3页面导航和使用javascript传递参数
- 如何在react js中从一个页面导航到另一个页面
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- window.on.scroll事件未启动
- 导航栏没有调整到浏览器屏幕的大小
- 显示放大镜弹出窗口时隐藏导航内容
- DataTable按下键选择扩展/导航
- 正在检测导航到<a name=“;最新主题”></a>
- 带有url的单页网站导航
- 父页面的角度路由器导航高亮显示
- 如何正确编程jQuery动画与平滑(导航栏)
- 动态更改'汉堡包'导航取决于BG图像
- Socket.io on Mozilla Rhino
- 在ionic on registering on HardwareBackButton事件中,后退按钮仍然使页面导航到上