在我的混合移动应用程序(为Android和ios开发)中,我使用下面的代码window.open("sample.html","_blank","location=yes")
在inappbrowser中启动sample.html页面。有了这个,它打开一个inappbrowser窗口并加载带有url栏的sample.html页面,在android中有'X'标记,在ios底部有'Done'按钮。如果我们点击android中的'X'标记或ios中的'完成'按钮,它会关闭inappbrowser。现在,当我点击sample.html中的按钮时,我想要有相同的行为。我使用了window.close()但它没有用。
我正在为我的应用程序使用IBM worklight框架。
答案 0 :(得分:0)
InAppBrowser
是Cordova附带的功能
您可以详细了解它,包括所有支持的event
s in its documentation page。
没有直接的方法可以关闭InAppBrowser实例"来自",因此需要进行解决。
这是实现目标的一种方法:
在您的sample.html中添加一些'关闭'像这样的链接,例如:
<!-- Point to some non-existing end-point;
We'll catch the error and use it to close the InAppBrowser. -->
<a href="/close">Close</a>
如果你真的希望它成为一个按钮,你可以将链接设置为按钮的样式。
在Worklight应用中的common \ main.js中添加以下内容,例如:
var InAppBrowserReference;
function wlCommonInit(){
}
function openInAppBrowser() {
// Use location=no,toolbar=no in order to hide the supplied 'close' buttons
// by the InAppBrowser instance.
InAppBrowserReference = window.open('sample.html', '_blank', 'location=no,toolbar=no');
InAppBrowserReference.addEventListener('loaderror', closeInAppBrowser);
}
function closeInAppBrowser(event) {
if (event.url.match("/close")) {
InAppBrowserReference.close();
}
}
在上面的代码段中,为了简单起见,从common \ index.html调用openInAppBrowser()
以打开InAppBrowser。