是否有可能模拟Android"硬件"网络浏览器中的后退按钮?

时间:2015-07-17 05:56:57

标签: cordova ionic-framework

很高兴可以在浏览器中的Cordova / Ionic应用程序中测试许多案例。但是,我还没有发现假冒Android(以前的硬件)后退按钮的方法。

如果有一个带有后退按钮或按键组合的额外抽屉(例如Alt + Ctrl +<)会触发一个让Ionic认为按下Android后退按钮的事件会很好。

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

要明确:我只在网络浏览器中测试离子应用时才想要这个。所以Android专家:不需要在这里提供Java代码 - 我们不在Android设备或模拟器上。并且:我非常确定$ionicHistory.goBack()$window.history.back()之类的东西不是我想要的。

1 个答案:

答案 0 :(得分:9)

我有一个工作解决方案,我想与您分享。按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);
    }
});