PhoneGap / Onsen UI - 无法捕获Android后退按钮

时间:2015-11-04 18:40:13

标签: javascript android angularjs cordova onsen-ui

我尝试了很多解决方案,但我似乎无法捕获Android的“后退”事件。我想要做的就是阻止后退按钮关闭应用程序。

对于上下文,我正在使用Onsen UI库(以核心使用AngularJS)构建HTML5跨平台应用程序。我正在使用PhoneGap Build来创建iOS和Android版本。我正在测试三星Galaxy S4。

这是我目前的尝试(这不起作用):

PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs /usr/local/bin/casperjs --cookie-file=$(pwd)/tv-cookies.txt --ssl-protocol=any --ignore-ssl-errors=true $(pwd)/capture.js

我错过了什么?

2 个答案:

答案 0 :(得分:0)

我认为你不需要像对待你那样对待事件,我使用的是这样的东西:

    onBackButton: function() {
        console.log('User pressed back button.');

        if (<logic to determine if app is at its home screen>) {
            // Go to launcher
            navigator.app.exitApp();
        } else {
            // Logic to determine what view is the "back" view
        }
    }

您也在收到“deviceready”事件后注册“backbutton”事件监听器。我在“deviceready”回调函数中注册我的:

onDeviceReady: function() {
    document.addEventListener('pause', app.onDevicePause, false);
    document.addEventListener('resume', app.onDeviceResume, false);
    document.addEventListener('offline', app.onOffline, false);
    document.addEventListener('online', app.onOnline, false);

    if (device.platform === 'Android') {
        document.addEventListener('backbutton', app.onBackButton, false);
        document.addEventListener('menubutton', app.onMenuButton, false);
        document.addEventListener('searchbutton', app.onSearchButton, false);
    }
    ...
}

答案 1 :(得分:0)

这项工作对我来说:

HTML:

<ons-navigator>
    <ons-page var="mypage">
        ...
    </ons-page>
</ons-navigator>

JAVASCRIPT:

ons.ready(function () {
    mypage.setDeviceBackButtonHandler(function () {
    doSomething();
  });
});