Cordova InAppBrowser:从脚本中关闭InAppBrowser实例

Cordova InAppBrowser:从脚本中关闭InAppBrowser实例,cordova,inappbrowser,Cordova,Inappbrowser,我正在尝试从注入的脚本关闭inappbrowser实例。 这是我试过的代码 ref = window.open(tile.typeContentUrl_en, '_blank', 'location=no'); ref.addEventListener('loadstop', function(data, err) { ref.executeScript( { code: 'document.getElementsByTagName("body")[

我正在尝试从注入的脚本关闭inappbrowser实例。
这是我试过的代码

    ref = window.open(tile.typeContentUrl_en, '_blank', 'location=no');
    ref.addEventListener('loadstop', function(data, err) {
      ref.executeScript( {
        code: 'document.getElementsByTagName("body")[0].addEventListener("click", function(){ alert("clicked");ref.close() });'
      }, function(){
        console.log('script injected');
      });
    });

我在inappbrowser实例中没有定义
ref

ref
是在cordova webview上定义的,但是
inappbrowser
有自己的webview,并且那里没有定义
ref
,所以你不能像那样关闭
inappbrowser

我还没有测试过这个,它有点粗糙,但可能会工作:

    ref = window.open(tile.typeContentUrl_en, '_blank', 'location=no');
    ref.addEventListener('loadstop', function(data, err) {
      ref.executeScript( {
        code: 'document.getElementsByTagName("body")[0].addEventListener("click", function(){ alert("clicked");window.location.href = "close"; });'
      }, function(){
        console.log('script injected');
      });
    });

    ref.addEventListener('loadstart', function(event) {
        if(event.url.indexOf("close") > -1) {
            ref.close();
        }
    });

我检查了这个,但是我不知道loadstart回调怎么没有被调用。有什么想法吗?我刚刚测试了它,它可以工作,但我不得不在loadstart上更改if,因为window.location.href=“close”;重定向到当前页面/close,而不是url为just close的空页面,因此请检查该页面是否包含url上的close