Cordova 后退按钮覆盖默认行为

Posted

技术标签:

【中文标题】Cordova 后退按钮覆盖默认行为【英文标题】:Cordova back button override default behavior 【发布时间】:2021-10-25 11:10:12 【问题描述】:

我已经覆盖了后退按钮的 Cordova 默认行为,所以如果有任何对话框/模态打开关闭它们(本机行为),但如果没有,我希望设置后退按钮的默认导航,什么我试图只设置 window.history.back() 但它似乎是默认设置,例如:如果您多次单击返回,它不会关闭应用程序。

      document.addEventListener("backbutton", function(event)
                 if (dialogService.openDialogs.length > 0) 
                     dialogService.closeAll();
                     event.preventDefault();
                  else 
                     window.history.back();
                 
         )

【问题讨论】:

【参考方案1】:

一旦你覆盖了默认行为,你应该告诉应用如何处理这个事件。 试试这个代码:

document.addEventListener("backbutton", function(event)
  if (dialogService.openDialogs.length > 0) 
     dialogService.closeAll();
     event.preventDefault();
   else if (document.referrer == "")  //you check that there is nothing left in the history. It will work most of the time in cordova apps but this is not a perfect way to check it    
    navigator.app.exitApp(); //when you override the default behavior, this is the command to close the app
   else 
     window.history.back();
  
);

【讨论】:

以上是关于Cordova 后退按钮覆盖默认行为的主要内容,如果未能解决你的问题,请参考以下文章

Cordova android后退按钮确认消息

如何从 Cordova 中的 android 设备后退按钮退出应用程序?

AngularJS 中的移动后退按钮与 Cordova/PhoneGap 不起作用

PhoneGap - 后退按钮上的android退出

用于 android 的 cordova/phongap 流星构建中的后退按钮不会始终关闭应用程序

当资源不是本地的(使用 http)时,不会触发 Cordova android 4.x 后退按钮事件