在我的cordova应用程序中,我通过以下代码在inappbrowser中打开(使用InAppBrowser
插件)网页。
var ref = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes');
ref.close();
现在我想在ref.isClosed()
这样的js中检查InAppBrowser是否已关闭(不是我希望检查浏览器本身是打开还是关闭的特定URL)。但是InAppBrowser并没有促进这种功能。有没有办法找到它?
答案 0 :(得分:2)
您可以创建一个简单的包装器来跟踪它是打开还是关闭,例如:
var iab_controller = (function(){
var ref, isOpen = false;
return {
open: function(url){
ref = cordova.InAppBrowser.open(url, '_blank', 'location=yes');
isOpen = true;
return ref;
},
close: function(){
if(isOpen){
ref.close();
ref = null;
isOpen = false;
}
},
isOpen: function(){
return isOpen;
},
isClosed: function(){
return !isOpen;
}
};
})();
console.log("isOpen: " + iab_controller.isOpen())
console.log("isClosed: " + iab_controller.isClosed())
iab_controller.open('http://apache.org');
console.log("isOpen: " + iab_controller.isOpen())
console.log("isClosed: " + iab_controller.isClosed())
iab_controller.close();
console.log("isOpen: " + iab_controller.isOpen())
console.log("isClosed: " + iab_controller.isClosed())
答案 1 :(得分:1)
var browserRef = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes');
var isOpen = true;
browserRef.addEventListener('exit', function(event) {
console.log('exit: event fires when the InAppBrowser window is closed.');
isOpen = false;
});
为InAppBrowser中的退出事件添加侦听器。这将允许您执行逻辑或设置变量来管理状态。