如何在不使用关闭按钮的情况下关闭 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,您可以使用 loadstartmessage 事件侦听器。请注意,后者需要 cordova-plugin-inappbrowser 3.1.0-dev 才能工作。

在此处查看详细信息和完整示例: How to close InAppBrowser window in Cordova by itself

我建议使用 loadstart 方法并简单地检查加载的 URL,这适用于稳定的插件。