2013-08-28 78 views
2

我不明白這一點。我已經打開了Android手機的電話中的兒童瀏覽器:我怎樣才能關閉inAppbrowser一個按鈕沒有完成按鈕topbar

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(); 
    } 
}); 

此按鈕鏈接頁面創建我以前裝過:

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

它不起作用。任何幫助?

更新:

  • 的網址打開是諸如「文件:// ...」
  • 如果設置了「位置= YES」,推動「完成」按鈕,它會嘗試關閉但重新出現。
+0

你檢查了url的值嗎?即ref.addEventListener('loadstop',函數(事件){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 
    } 
} 
相關問題