【问题标题】:How to control android backbutton routes?如何控制android后退按钮路由?
【发布时间】:2014-06-04 15:27:03
【问题描述】:

Onsen 中的默认设置是当按下设备后退按钮时应用程序关闭/退出。有什么方法可以控制 Onsen 中的它也模仿 ons-navigator 操作/页面历史记录?

谢谢!

【问题讨论】:

    标签: onsen-ui


    【解决方案1】:

    在 PhoneGap/Cordova 的情况下,按下后退按钮时会触发后退按钮事件。 因此,您可以设置事件处理程序 s.t.

    document.addEventListener("backbutton", onBackKeyDown, false);
    

    在eventhandler函数中,可以通过获取navigator作用域s.t.来调用navigator的popPage方法

    function onBackKeyDown() {
        // Handle the back button
        alert("Backbutton is pressed!");
        var element = document.querySelector( ".navigator-container");
        var scope = angular.element( element ).scope();
        scope.popPage();
    }
    

    如果你使用的是 Monaca,基于 Cordova 的混合应用框架,后退按钮事件 没有被解雇。相反,您可以使用定义 Backbutton 事件的 .ui 文件。

    {
        "event" : {
            "onTapBackButton" : "onBackKeyDown();"
        }
    }
    

    【讨论】:

    • 再次感谢@KNaito!你知道你的东西。
    • 这个对我不起作用。我可以看到警报窗口,但之后没有任何反应。如果我尝试直接在 onBackKeyDown() 中调用 onsen 函数,也会出现错误,说明缺少“ons”标识符。例如 ons.navigator.popPage()/
    • 谢谢,弗拉迪乌斯。 Monaca 的 .ui 文件现已弃用。请按你说的使用温泉用户界面。
    【解决方案2】:

    无需处理后退按钮事件以防止应用程序被杀死。 Onsen-ui 从 v1.1.1 开始支持 ons-navigator 和 ons-sliding-menu 上的 android 后退按钮。

    您可以查看here

    【讨论】:

    • 第二个。现在很容易!
    【解决方案3】:

    您可以在 ons.ready 事件之后使用“disableDeviceBackButtonHandler”来控制它。之后为返回按钮添加一个事件监听器并做任何你想做的事情。

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

    看看这篇文章:https://onsen.io/guide/overview.html#HandlingBackButton

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-18
      • 2010-11-18
      • 2020-10-29
      • 2022-08-20
      • 1970-01-01
      • 2019-03-15
      • 2010-11-30
      • 2010-10-28
      相关资源
      最近更新 更多