如何在不使用关闭按钮的情况下关闭 phonegap/cordova InAppBrowser
How to close phonegap/cordova InAppBrowser without using the close button
在我的 phonegap 应用程序中,我使用 InAppBrowser 打开外部 link(它正常工作):
cordova.InAppBrowser.open(completeUrl, '_blank', 'location=yes');
我需要在用户进行特定操作时关闭打开的 link。我知道我可以用
关闭它
var b = cordova.InAppBrowser.open(completeUrl, '_blank', 'location=yes');
b.Close();
但这是在我的应用程序方面,我需要在外部 link 方面有类似的东西。例如,是否可以在外部 link 端引用实例?我觉得不是吧?
使用 "location=yes" 我在顶部有一个舒适的关闭按钮,所以这可能是一个解决方案,但我想在用户完成使用外部 link 时关闭它,不使用本机关闭按钮。
可能吗?
更新
我尝试了什么?
1) 来自 window.close equivalent in Phonegap with InAppBrowser
例如,我的服务器显示一个带有关闭按钮的网页,如下所示:
<a href="/mobile/close">Close</a>
在我的客户端javascript(Phonegap 应用程序):
var ref = window.open(encodeURI(url), '_blank', options);
ref.addEventListener('loadstop', function(event) {
if (event.url.match("mobile/close")) {
ref.close();
}
});
2) 来自
var win=window.open( "myurl", "_blank");
win.addEventListener( "loadstop", function(){
var loop = window.setInterval(function(){
win.executeScript({
code: "window.shouldClose"
},
function(values){
if(values[0]){
win.close();
window.clearInterval(loop);
}
}
);
},100);
});
在您调用的 window 中,只需执行以下操作:
window.shouldClose=true
想关闭的时候
3) 来自被调用页面的愚蠢 window.Close()
我的尝试都没有成功。
为了自行关闭 InAppBrowser window,您可以使用 loadstart
或 message
事件侦听器。请注意,后者需要 cordova-plugin-inappbrowser 3.1.0-dev 才能工作。
在此处查看详细信息和完整示例:
How to close InAppBrowser window in Cordova by itself
我建议使用 loadstart
方法并简单地检查加载的 URL,这适用于稳定的插件。
在我的 phonegap 应用程序中,我使用 InAppBrowser 打开外部 link(它正常工作):
cordova.InAppBrowser.open(completeUrl, '_blank', 'location=yes');
我需要在用户进行特定操作时关闭打开的 link。我知道我可以用
关闭它var b = cordova.InAppBrowser.open(completeUrl, '_blank', 'location=yes');
b.Close();
但这是在我的应用程序方面,我需要在外部 link 方面有类似的东西。例如,是否可以在外部 link 端引用实例?我觉得不是吧?
使用 "location=yes" 我在顶部有一个舒适的关闭按钮,所以这可能是一个解决方案,但我想在用户完成使用外部 link 时关闭它,不使用本机关闭按钮。
可能吗?
更新 我尝试了什么? 1) 来自 window.close equivalent in Phonegap with InAppBrowser 例如,我的服务器显示一个带有关闭按钮的网页,如下所示:
<a href="/mobile/close">Close</a>
在我的客户端javascript(Phonegap 应用程序):
var ref = window.open(encodeURI(url), '_blank', options);
ref.addEventListener('loadstop', function(event) {
if (event.url.match("mobile/close")) {
ref.close();
}
});
2) 来自
var win=window.open( "myurl", "_blank");
win.addEventListener( "loadstop", function(){
var loop = window.setInterval(function(){
win.executeScript({
code: "window.shouldClose"
},
function(values){
if(values[0]){
win.close();
window.clearInterval(loop);
}
}
);
},100);
});
在您调用的 window 中,只需执行以下操作:
window.shouldClose=true
想关闭的时候
3) 来自被调用页面的愚蠢 window.Close()
我的尝试都没有成功。
为了自行关闭 InAppBrowser window,您可以使用 loadstart
或 message
事件侦听器。请注意,后者需要 cordova-plugin-inappbrowser 3.1.0-dev 才能工作。
在此处查看详细信息和完整示例: How to close InAppBrowser window in Cordova by itself
我建议使用 loadstart
方法并简单地检查加载的 URL,这适用于稳定的插件。