2

我想不通这一点。我在 phonegap 中为 Android 应用打开了一个子浏览器:

window.open( url, '_blank', 'location=yes' );

这不太对。它会打开浏览器,但完成按钮不会关闭浏览器,也不会返回到主应用程序。

我尝试过另一种解决方案:

Phonegap 中的 window.close 等效项与 InAppBrowser

此代码是 phonegap 应用程序:

var ref = window.open(encodeURI(url), '_blank', options);
ref.addEventListener('loadstop', function(event) {        
    if (event.url.match("mobile/close")) {
        ref.close();
    }
});

这个按钮是在我之前加载的 url 页面中创建的:

<a href="/mobile/close">Close</a>

它不起作用。有什么帮助吗?

更新:

  • 打开的url如'file://...'
  • 如果我设置“位置=是”并按下“完成”按钮,它会尝试关闭但又重新出现。
4

1 回答 1

1

我得到了这个工作。我的代码是相似的,但这是我所做的不同之处,我使用 loadstart 而不是 loadstop。我还删除了这些事件。

function iabWindowOpen(url) {
    //May need to encodeURI on iOS so far working fine on android
    g_iabRef = window.open(url, "_blank", "location=yes,closebuttoncaption=Cancel");
    g_iabRef.addEventListener('loadstart', iabLoadStart);
    g_iabRef.addEventListener('loaderror', iabError);
    g_iabRef.addEventListener('exit', iabExit);
}


function iabLoadStart(event){
    var url = event.url;
    LOG ('iabLoadStart - ' + url);
    var iOut = url.indexOf("CloseIAB"); //or whatever you are looking for in your url
    if(iOut >= 0){
         g_iabRef.removeEventListener('loadstart', iabLoadStart);
         g_iabRef.removeEventListener('loaderror', iabError);
         g_iabRef.removeEventListener('exit', iabExit);
         g_iabRef.close();
         handleOpenURL(url); //do what you want when you get back
     }
}
于 2013-09-10T16:54:37.373 回答