【问题标题】:cordova back button fires event listener but app closes anyway科尔多瓦后退按钮触发事件侦听器,但应用程序仍然关闭
【发布时间】:2017-03-10 01:19:34
【问题描述】:

我有以下代码,如果用户在他的设备上按下后退按钮,我想在他能够退出应用程序之前向他显示一个弹出窗口。但是,这对我不起作用。会显示警告框,但应用程序也会关闭。

document.addEventListener("deviceready", function() {
    document.addEventListener("backbutton", function(e) {
        e.preventDefault();
        $scope.alertDialog.show();
    }, false);
}, false);

科尔多瓦版本:6.4.0 在有人提出之前 - cordova.js 包含在 index html 页面中。 UI 是使用带有 angularJS v1 的 onsenUI 构建的。

【问题讨论】:

标签: cordova mobile hybrid-mobile-app back-button onsen-ui


【解决方案1】:

你可以这样做:

document.addEventListener("deviceready", function() {
var backbutton=0;
    document.addEventListener("backbutton", function(e) {
       if(backbutton==0){
            backbutton++;
              $scope.alertDialog.show();
             // window.plugins.toast.showShortCenter('Press again to exit');
            $timeout(function(){backbutton=0;},5000);
        }else{
            navigator.app.exitApp();
        }
    }, false);
}, false);

希望对你有所帮助。

【讨论】:

【解决方案2】:

想通了。 How to control android backbutton routes? 最后 0 个投票的答案是正确的。

之后你可以用“disableDeviceBackButtonHandler”来控制它 ons.ready 事件。之后为后退按钮添加一个事件侦听器,然后 做任何你想做的事。

ons.ready(function() {
  ons.disableDeviceBackButtonHandler();

  // Use Cordova handler
  window.document.addEventListener('backbutton', function() {
    // Handle backbutton event
  }, false);
});

【讨论】:

    猜你喜欢
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 2016-06-16
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多