2013-01-19 47 views
3

Cordova 2.3.0中的InAppBrowser未正確加載URL。我知道這與白名單網址的新方法有關,它們只適用於Cordova WebView主而不是插件。Cordova 2.3 Phonegap InAppBrowser URL白名單錯誤

我已閱讀an article關於如何將您的白名單網址用於插件,但它非常含糊,我不確定在哪裏添加他們建議的代碼。從上面引用的鏈接步驟3

說明書建議:

步驟3)。白名單不再檢查插件的網絡連接。要將白名單用於插件網絡連接,您必須將連接的「User-Agent」標頭設置爲viewController的用戶代理。

`CDVViewController* vc = ((CDVViewController*)self.viewController); 
NSString* userAgent = vc.userAgent; 
// then set the User-Agent header of your network connection...` 

本文不說在哪裏添加此代碼。我假設它在MainViewController.m中,但我不確定。我試過把它放在該文件的init函數中,但它不起作用。我也不知道它們是什麼意思,然後設置網絡連接的用戶代理標題......我在哪裏設置?

有沒有人有過這方面的成功?如果是這樣,我會喜歡一些幫助。我真的被困在這裏。

謝謝!

回答

0

這發生在phonegap項目的config.xml中。 添加下面的標籤在標籤

之間的<cordova>

<access origin="https://example.com" /> 
這個標籤允許任何安全傳送至example.com

訪問元素控制Android的白名單。 域被認爲阻止,除非另外設定

+0

嘿克林頓。感謝您的迴應。我已經將訪問權限設置爲*。問題是使用InAppBrowser時,它不符合這個白名單。不知何故,我必須在Objective C中配置它。任何想法? – jjsquared

0

我張貼這在這裏:Phonegap/Cordova 2.3.0 iOS Whitelist Ignored

如果你用故事板。 添加到您的MainViewController或控制器:CDVViewController

- (id)initWithCoder:(NSCoder *)aDecoder 
{ 
    self = [super initWithCoder:aDecoder]; 
    if (self) { 
     self = [self init]; 
    } 
    return self; 
} 
+0

我已經將此添加到我的MainViewController.m,但沒有運氣。然後我嘗試將它添加到我的CDVViewController中,結果如下: [5170:907] webView:didFailLoadWithError - 操作無法完成。 (WebKitErrorDomain error 101.) 關於接下來要做什麼的任何想法? – jjsquared

0

我一直得到webView的原因是:要傳遞的網址不被編碼didFailLoadWithError所致。像google.com這樣的常規URL可以正常工作,但帶有參數的更復雜的URL會導致加載錯誤。造成這種情況的解決方法是調用window.open之前的URL編碼:

var URL = encodeURI(e.data.url); var ref = window.open(URL, '_blank', 'location=yes');

這解決了使用科爾多瓦2.5的問題。