2012-05-17 28 views
4

Phonegap 1.7中的子瀏覽器插件只能第一次打開。我正在使用Phonegap 1.7和Childbrowser。只有第一次兒童瀏覽器正在工作。在我關閉了Childbrowser(按下完成按鈕)之後,當我試圖打開時它不會再次打開。Phonegap 1.7中的子瀏覽器插件只能第一次打開

我的代碼是這樣的:

$("a[target=_blank]").bind('click', function(e) { 
    e.preventDefault(); 
    var thisUrl = $(this).attr('href'); 
    cb.showWebPage(thisUrl); 
    alert("click"); 
}); 

當我點擊一個鏈接後,Childbrowser彈出並顯示頁面。我點擊「完成」並返回。但是當我點擊鏈接或其他鏈接時,瀏覽器不再彈出,但每次都會顯示「點擊」提示。

p.s.我從here下載了Childbrowser插件

回答

2

我有使用https://github.com/phonegap/phonegap-plugins/blob/master/iPhone/ChildBrowser/的同樣的問題。

我解決了它黑客ChildBrowser.js評論4行,如下所示。我意識到這兩種方法正在被調用,所以可能會發生某種衝突。我希望有所幫助。

ChildBrowser.prototype.showWebPage = function(loc) { 
// if (typeof PhoneGap !== "undefined") 
// { 
//  PhoneGap.exec("ChildBrowserCommand.showWebPage", loc); 
// } 
    if (typeof Cordova !== "undefined") 
    { 
     Cordova.exec("ChildBrowserCommand.showWebPage", loc); 
    } 
}; 
+0

謝謝。爲我節省了很多頭痛!只需添加它即可在打開和關閉功能中進行評論。 –

1

我與科爾多瓦1.9有同樣的問題。在快速

// Show a webpage, will result in a callback to onLocationChange 
ChildBrowser.prototype.showWebPage = function(loc) 
{ 
    cordovaRef.exec("ChildBrowserCommand.showWebPage", loc); 
}; 

我在日誌中已經注意到,當孩子瀏覽器出現故障時,JavaScript「點擊」函數被調用兩次:

我用了插件的版本先後爲showWebPage功能不同的代碼演替。有時,它發生在第一次點擊,有時它會是5或6

2012-07-27 09:27:12.155 XX[10562:707] [INFO] JS :: Should open in childBrowser 
2012-07-27 09:27:12.158 XX[10562:707] Opening Url : http://www.google.co.uk/ 
2012-07-27 09:27:12.160 XX[10562:707] [INFO] JS :: Should open in childBrowser 
2012-07-27 09:27:12.161 XX[10562:707] *** WebKit discarded an uncaught exception in the webView:decidePolicyForNavigationAction:request:frame:decisionListener: delegate: <NSInvalidArgumentException> Application tried to present modally an active controller <MainViewController: 0x157e50>. 

我已經試過一次被點擊去除按鈕的Click事件之後,並重新將它放在childBrowser.onClose事件,這似乎確實幫助了兒童瀏覽器崩潰問題。

3

我也有這個問題,與科爾多瓦2.0.0,結合jQuery Mobile 1.1.1。我的代碼來設置我的鏈接看起來像:

$(document).bind("pageinit", function() { 
    onDeviceReady(); 
}); 
function onDeviceReady(){ 
    var root = this; 
    cb = window.plugins.childBrowser; 
    if (cb != null) { 
    $('a[target="_blank"]').click(function(event){ 
     cb.showWebPage($(this).attr('href')); 
     event.preventDefault(); 
    }); 
    } 
} 

注:pageinit event就像平常$(document).ready()但jQuery Mobile的。

因此,ChildBrowser在第一次鏈接點擊時打開,但在關閉後再次不會再次打開。要解決,我將這兩行event.preventDefault();後:

event.stopImmediatePropagation(); 
return false; 

這爲我做!

+0

謝謝!這有助於我的情況。 – Jaroslav

相關問題