当前位置 : 主页 > 手机开发 > cordova >

cordova – 如何处理硬件上的按钮ons对话框?

来源:互联网 收集:自由互联 发布时间:2021-06-10
我的应用程序包含一个在对话框中打开图像的imageclick上的ons对话框.但是我无法处理硬件设备返回按钮.显示“捕获后退”按钮处理程序失败的错误.所以请帮助. 代码: ons-template id="Ima
我的应用程序包含一个在对话框中打开图像的imageclick上的ons对话框.但是我无法处理硬件设备返回按钮.显示“捕获后退”按钮处理程序失败的错误.所以请帮助.

代码:

<ons-template id="ImagePopup.html">

  <ons-dialog style="height:100%;width:100%;background:#000000;" var="naviDialog" cancelable ng-device-backbutton="click();" animation="fade" true> 
     <img id="PopImg" style="height:50%;width:100%;padding-top:30%">

  </ons-dialog> 

</ons-template>
当在ons-navigator对象中使用dialog组件时,我遇到同样的问题.为了使其工作,我不得不禁用该对话框的默认后退按钮处理程序,并使导航器对象处理它.

这是我做的代码,希望它有帮助:

ons.createDialog('dialogs/yourDialog.html').then(function(dialog) {
    dialog.getDeviceBackButtonHandler().disable();

    var f = function(event) {
        dialog.hide();
        myNavigator.getDeviceBackButtonHandler().setListener(function(event) { 
            try{
                myNavigator.popPage(); 
            }
            catch (err){
                event.callParentHandler();
            }
        });
    } 
    myNavigator.getDeviceBackButtonHandler().setListener(f);
    dialog.show({parentScope: $scope});
});

简要说明:

>禁用对话框返回按钮处理程序(这是导致错误的原因)>禁用时,后退按钮将由具有后退按钮处理程序(在这种情况下为myNavigator)的下一个节点处理,该节点工作正常.>在显示对话框时更改myNavigator的事件侦听器,以隐藏对话框.>隐藏它后,我尝试恢复其默认功能.它是Navigator对象,所以popPage应该是默认的动作,如果页面堆栈是空的(什么引发错误)我们将调用父处理程序(通常会让你脱离应用程序)

网友评论