如何使用未完成按钮顶部栏的按钮关闭 inAppbrowser

Posted

技术标签:

【中文标题】如何使用未完成按钮顶部栏的按钮关闭 inAppbrowser【英文标题】:How can I close the inAppbrowser with a button not done button topbar 【发布时间】:2013-08-28 21:26:06 【问题描述】:

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

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

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

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

window.close equivalent in Phonegap with 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://...' 如果我设置“location=yes”并按下“完成”按钮,它会尝试关闭但又重新出现。

【问题讨论】:

你检查 url 的值了吗?即 ref.addEventListener('loadstop', function(event) alert(event.url); ); 【参考方案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
     

【讨论】:

以上是关于如何使用未完成按钮顶部栏的按钮关闭 inAppbrowser的主要内容,如果未能解决你的问题,请参考以下文章

编辑/完成按钮,更改完成按钮背景颜色

当按钮覆盖在表格视图顶部时,如何防止表格视图单元格注册点击?

当按钮覆盖在tableview顶部时,如何防止tableview单元注册一个tap?

如何在BottomSheetDialog android的顶部中心添加关闭按钮?

Android:Intellij 按钮导航模板创建未使用的空间,隐藏其下的节点

如何在IOS键盘顶部的键盘上添加完成按钮?