【问题标题】:Is it possible to simulate Android "hardware" back-button in web browser?是否可以在网络浏览器中模拟 Android“硬件”后退按钮?
【发布时间】:2015-07-17 05:56:57
【问题描述】:

可以在浏览器中的 Cordova/Ionic 应用程序中测试许多案例,这很棒。但我还没有找到一种伪造按下 Android(以前是硬件)后退按钮的方法

如果有一个带有后退按钮或组合键(例如 Alt+Ctrl+

是否可以使用 JavaScript 触发此类事件?怎么样?

明确一点:我只在我的网络浏览器中测试离子应用程序时才需要这个。所以你们 Android 人:这里不需要提供 Java 代码——我们不在 Android 设备或模拟器上。并且:我很确定 $ionicHistory.goBack()$window.history.back() 这样的东西不是我想要的。

【问题讨论】:

  • 好问题,赞成。可能这必须是对 Ionic 团队的请求,但他们可能会说“使用模拟器”;)
  • 不确定这是否可行,但您可以尝试触发后退按钮事件:cordova.fireDocumentEvent('backbutton');
  • @jcesarmobile 好主意 - 我会尝试(希望很快)。
  • 感谢@jcesarmobile 它有效。我只需要删除对cordova的依赖,所以我不得不再编写几行代码。
  • cordova.fireDocumentEvent('backbutton');像魅力一样工作

标签: cordova ionic-framework


【解决方案1】:

我想与您分享一个可行的解决方案。当按下Alt+Ctrl+< 时,它会触发backbutton 事件。当然,像navigator.app.exitApp() 这样的东西是行不通的,但是简单的导航可以工作,例如关闭模式。

AppModule.run(function ($window, $document, $ionicPlatform) {
    'use strict';
    var document = $document[0];

    function triggerBackButton() {
        var backButtonEvent = document.createEvent('Events');
        backButtonEvent.initEvent('backbutton', false, false);
        document.dispatchEvent(backButtonEvent);
    }

    function registerBackButtonFake() {
        document.addEventListener('keyup', function (event) {
            // Alt+Ctrl+<
            if (event.altKey && event.ctrlKey && event.keyCode === 188) {
                triggerBackButton();
            }
        });
    }

    if (!$window.cordova) {
        $ionicPlatform.ready(registerBackButtonFake);
    }
});

【讨论】:

  • 可能要添加一个检查以不注册该事件两次
  • 不应该发生。 run 部分只执行一次。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 2011-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 2019-08-06
相关资源
最近更新 更多