我有一个我使用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);
}
});
答案 0 :(得分:1)
知道了,找到了答案here。
只需添加以下侦听器即可在AppBrowser退出时退出应用程序。
var ref = cordova.InAppBrowser.open(encodeURI(url), '_self', 'location=no');
ref.addEventListener('exit', function () {
navigator.app.exitApp();
});
希望将来可以帮助其他人。