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标头......”我在哪里设置它?
有人有过这方面的成功吗?如果是这样,我会喜欢一些帮助。我真的被困在这里了。
谢谢!
答案 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的问题。