Cordova 2.3 Phonegap InAppBrowser URL白名单错误

时间:2013-01-19 16:23:41

标签: ios cordova user-agent whitelist

Cordova 2.3.0中的InAppBrowser未正确加载URL。我知道这与白名单URL的新方法有关,以及它们仅适用于主要的Cordova WebView而不是插件。

我已阅读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函数中,但它不起作用。我也不知道他们的意思是“然后设置网络连接的User-Agent标头......”我在哪里设置它?

有人有过这方面的成功吗?如果是这样,我会喜欢一些帮助。我真的被困在这里了。

谢谢!

3 个答案:

答案 0 :(得分:0)

这可以在你的phonegap项目的config.xml中找到。 在<cordova>标记

之间添加以下标记
 <access origin="https://example.com" /> 

此标记允许对example.com的任何安全请求

访问元素控制Android白名单。 除非另有设置,否则假定域被阻止

答案 1 :(得分: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;
}

答案 2 :(得分:0)

我一直得到webView:didFailLoadWithError的原因是由于传入的URL没有被编码。像google.com这样的常规网址运行良好,但是使用params的更复杂的网址导致了加载错误。解决这个问题的方法是在调用window.open:

之前对URL进行编码

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

这解决了使用Cordova 2.5的问题。