Phonegap Android后退按钮关闭inAppBrowser

时间:2016-06-01 11:57:29

标签: javascript android cordova inappbrowser

这个问题已经多次提出过了。但是我仍然在努力解决这个问题而不知道如何解决它。

我非常原始的应用代码:

<!DOCTYPE html>
<html>
<head>
<title>Standalone Example</title>

<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
document.addEventListener("deviceready", onDeviceReady, false);
var iabRef = null;

function onDeviceReady() {
  iabRef = window.open('http://example.com', '_blank', 'location=no', 'zoom=no', 'hardwareback=yes');
  iabRef.addEventListener('exit', iabClose);
}

function iabClose(event) {
 iabRef.removeEventListener('exit', iabClose);
}
</script>
</head>
<body>
</body>
</html>

在phonegap论坛上,我读到默认情况下添加了Android硬件后退按钮功能。但它仍然不适合我。

期望的行为:根据历史记录浏览网页上的多个链接,点按并查看之前的页面。

实际行为:在浏览多个链接并点击返回inAppBrowser后,我看到的是白屏而不是上一页。

正如您所看到的,我也添加了hardwareback属性,但没有运气。此外,我尝试将higack后退按钮行为放在onDeviceReady函数中:

document.addEventListener("backbutton", function(e){
  e.preventDefault();
  navigator.app.backHistory()
}, false);

再次没有运气。尝试了几种不同的设备,都是一样的。我想我错过了一件非常简单的事情。有什么想法吗?

如果重要,我在build.phonegap.com上构建应用程序。

1 个答案:

答案 0 :(得分:0)

问题是我以错误的方式打电话给IAB,它应该是

iabRef = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes');

另外我应该为IAB插件指定npm的源代码。如果没有此规范,PGB将使用旧版本的弃用仓库。

相关问题