3

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

我读过一篇关于如何将白名单 URL 用于插件的文章,但它非常模糊,我不确定在哪里添加他们建议的代码。

上述链接中第 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 标头...”是什么意思我在哪里设置这个?

有没有人在这方面取得任何成功?如果是这样,我希望得到一些帮助。我真的被困在这里了。

谢谢!

4

3 回答 3

1

我不断收到 webView:didFailLoadWithError 的原因是由于 URL 被传入而没有被编码。像 google.com 这样的常规 URL 可以正常工作,但是带有参数的更复杂的 URL 会导致加载错误。解决此问题的方法是在调用 window.open 之前对 URL 进行编码:

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

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

于 2013-03-16T14:11:36.383 回答
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;
}
于 2013-01-25T20:37:52.167 回答
0

这在您的 phonegap 项目的 config.xml 中。在标签之间添加以下<cordova>标签

 <access origin="https://example.com" /> 

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

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

于 2013-01-21T04:04:40.887 回答