如何在不使用关闭按钮的情况下关闭phonegap / cordova InAppBrowser

时间:2019-05-22 09:12:54

标签: cordova phonegap mobile-application inappbrowser

在我的phonegap应用中,我使用InAppBrowser打开一个外部链接(它可以正常工作),

cordova.InAppBrowser.open(completeUrl, '_blank', 'location=yes');

当用户执行某些操作时,我需要关闭打开的链接。我知道我可以用

关闭它
var b = cordova.InAppBrowser.open(completeUrl, '_blank', 'location=yes');
b.Close();

但是这是在我的应用程序端,我需要在外部链接端类似的东西。例如,是否可以在外部链接端具有实例引用?我认为不,对吧?

对于“ location = yes”,我在顶部有一个舒适的关闭按钮,所以这可以解决,但我想在用户完成使用外部链接时关闭它,而无需使用本机关闭按钮

有可能吗?

更新 我尝试了什么? 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)来自https://stackoverflow.com/a/50047473/819161

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.shouldClose=true

当您要关闭它

3)哑窗口。从被叫页面关闭()

我的尝试均无济于事。

1 个答案:

答案 0 :(得分:0)

为了单独关闭InAppBrowser窗口,可以使用loadstartmessage事件侦听器。请注意,后者需要cordova-plugin-inappbrowser 3.1.0-dev 起作用。

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

我建议使用loadstart方法,只需检查加载的URL,即可与稳定的插件一起使用。