如何防止从Android的按下后退按钮时,请关闭Web的应用程序?(How to prevent A

2019-06-24 01:39发布

我开发一个HTML5的Web应用程序,并与科尔多瓦(PhoneGap的)1.7编译它。

我想重写了Android后退按钮,这样我可以调用window.history.back(),而不是关闭应用程序(默认的Android)。 如何防止安卓杀死压上后退按钮defaultactivity?

我得到的“后退按钮按下!!!!” 在logcat中,所以应用程序被关闭之前,该方法被解雇。

这是我到目前为止有:

        // Wait for Cordova to load
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // Cordova is ready
        //
        function onDeviceReady() {

            document.addEventListener("backbutton", function(e) {

                console.log("Back button pressed!!!!");                 
                window.history.back();


            }, false);

        }

编辑:我很愿意接受的答案解释的方式直接从DefaultActivity.java机器人类模拟window.history.back()如果这是可能的!

Answer 1:

我解决我自己的问题通过添加下面的代码到DefaultActivity.java文件,以防止默认的Android行为,并保持JavaScript代码中的问题指出:

@Override
public void onBackPressed() {
   return;
}

我希望这有助于同样的问题有人在未来!



Answer 2:

我把这种方法。 我迷上了后退按钮时,你表现出来了。 我看看如果这是第一页或不是,然后询问用户是否要退出程序或没有。 这取决于你希望你的程序取决于其国家做什么。 我没加倍率为你显示; 我因此未似乎需要它。

if ($.mobile.activePage.attr('id') === 'firstpage') {
    // Prompt to confirm the exit
} else {
  window.history.back();
}

如果他们想退出,你可以拨打:

navigator.app.exitApp();

关闭程序。

我想你还是要允许用户退出你的应用程序。 我不倾向于使用应用程序,不允许某种类型的出口。

希望这可以帮助你。



Answer 3:

从来没有这样做,不过,你有没有试图return true

就像在Java SDK,如果返回True ,则系统会认为你已经正确地擦肩而过,事件,将不再将它传递给其它事件侦听器。



文章来源: How to prevent Android from closing web-application when backbutton is pressed?