是否可以在Web浏览器中模拟Android"硬件"后退按钮?

hgo*_*ebl 7 cordova ionic-framework

很高兴能够在浏览器中的Cordova/Ionic应用程序中测试许多案例.但我还没有找到一种伪造Android(以前的硬件)后退按钮的方法.

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

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

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

hgo*_*ebl 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);
    }
});
Run Code Online (Sandbox Code Playgroud)