【问题标题】:BackButton event affects other pages in PhoneGapBackButton 事件影响 PhoneGap 中的其他页面
【发布时间】:2013-09-03 11:56:41
【问题描述】:

在我的 PhoneGap android 应用程序中,在我的 Index.html 页面中的 OnDeviceReady() 方法中,我为后退按钮事件侦听器添加了以下函数。

document.addEventListener("backbutton", function(e) {
          var sPath=window.location.pathname;
          var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
          if(sPage == "index.html"){
                e.preventDefault();
                // My action
                return false;

            } else {
                return true;
            }
    }, false);  

面临的问题:
在我的 HomePage(Index.html) 中,它工作正常。如果我按下返回按钮,它就会关闭。
但是在所有其他页面(Page1.html,Page2.html,Page3.html,Page4.html)中,我没有创建后退按钮事件侦听器,但是当我按下后退键时没有任何反应。

【问题讨论】:

  • 你是如何从主页移动到另一个页面的?
  • 来自按钮点击事件,使用代码“window.location = "page1.html";"

标签: javascript android jquery-mobile cordova


【解决方案1】:

您可以尝试添加以下 javascript 代码:

document.addEventListener("backbutton", function(e) {
          var sPath=window.location.pathname;
          var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
          if(sPage == "index.html"){
                e.preventDefault();
//  Method to close Phonegap application
                 navigator.app.exitApp();


                } else {
   // Method to go back to previous page 
                    navigator.app.backHistory();
                }
        }, false);

绝对可行但使用两个 JavaScript 文件的替代方法...

我对 index.html 以外的页面使用了以下代码:

// Wait for Cordova to load

     document.addEventListener("deviceready", onDeviceReady, false);
       // Cordova is ready

    function onDeviceReady() {
    document.addEventListener("backbutton", function(e){
    e.preventDefault();
    navigator.app.backHistory();
    return false;
}, true);

        }

您可以在首页添加 navigator.app.exitApp();并删除 navigator.app.backHistory();

已经在这里回答了: PhoneGap - android exit on backbutton

【讨论】:

  • sjmach,感谢您的帮助。第二个代码工作正常,但缺点是如果我有 10 个页面的 10 个 html 文件,我需要为所有 10 个页面实现监听器。我想知道为什么在主页上实现时后退按钮事件在其他页面上不起作用!!!!!!
猜你喜欢
  • 2013-02-10
  • 1970-01-01
  • 2020-11-15
  • 1970-01-01
  • 2013-09-01
  • 1970-01-01
  • 2016-06-27
  • 2015-07-30
  • 1970-01-01
相关资源
最近更新 更多