Cordova PhoneGap - 阻止用户返回index.html页面。

时间:2016-08-04 20:29:01

标签: javascript android cordova

我有一个我使用PhoneGap AppBrowser访问的网络应用程序。

我使用index.html页面作为启动画面页面,并希望阻止用户在通过运行在该应用程序页面上的JS重定向到应用程序页面之后再回到它页。我已尝试使用window.location.replace("www.myapp.com");进行此操作,但这会在系统浏览器中打开该页面。

我尝试设置一个事件处理程序,当按下后退按钮时会调用该事件处理程序,但是当我返回此页面时,它不起作用(当我已经达到此状态时我必须按下后退按钮页面调用它)。说实话,我对在Cordova webview或app浏览器中是否打开应用程序感到有些困惑。我尝试将cordova.InAppBrowser.open(encodeURI(url), '_self', 'location=no');更改为cordova.InAppBrowser.open(encodeURI(url), '_blank', 'location=no');,但结果仍然相同。

如何确保用户在单击后退按钮时无法返回index.html页面,而是退出应用程序?

我使用Cordova CLI 6.1.1并在Android 5.x上进行测试。

index.js如下:

$(function () {

    document.addEventListener('deviceready', onDeviceReady.bind(this), false);

    function onDeviceReady() {

        document.addEventListener("backbutton", onBackKeyDown, false);

        var url = 'http://www.myapp.com';
        window.open = cordova.InAppBrowser.open;
        setTimeout(function () {
            var ref = cordova.InAppBrowser.open(encodeURI(url), '_self', 'location=no');
        }, 2500);

    };

    function onBackKeyDown(e) {
        e.preventDefault();
        console.log(document.location.href.indexOf('asset/www/index.html') > 1);
    }
});

1 个答案:

答案 0 :(得分:1)

知道了,找到了答案here

只需添加以下侦听器即可在AppBrowser退出时退出应用程序。

var ref = cordova.InAppBrowser.open(encodeURI(url), '_self', 'location=no');
ref.addEventListener('exit', function () {
    navigator.app.exitApp();
});

希望将来可以帮助其他人。