我在我的应用程序的 UIWebView 中加载 youku.com 视频时遇到问题。我很确定这是由于应用程序传输安全性,因为用 HTTPS URL 替换嵌入可以正常工作。当然,没有 HTTPS 等效 URL,因为中国。
我已经阅读了各种 NSAppTransportSecurity 设置。我的第一直觉当然是尝试使用 NSAllowsArbitraryLoads 来至少验证问题,但这并没有奏效。然后我按照各种在线指南展示了如何像你应该做的那样使用 NSExceptionDomains,但这也不起作用。
现在我被困住了。FWIW,我正在捕获这样的 URL 加载错误:
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
...
if (error.code == NSURLErrorCancelled)
{
NSLog(@"NSURLErrorCancelled: URL %@ error %@", urlString, error);
}
}
目前我正在使用一个虚拟测试 URL exon.name,这会产生:
2015-12-02 15:47:22.312 ZaoMengShe[81707:903426] NSURLErrorCancelled: URL https://dev1.zaomengshe.com/c/54260 error Error Domain=NSURLErrorDomain Code=-999 "(null)" UserInfo={NSErrorFailingURLKey=http://exon.name/, NSErrorFailingURLStringKey=http://exon.name/}
确认一下,-999 是 App Transport Security 执行此操作时的错误,对吗?(这不是一个信息量很大的错误!)
另一件事,如NSAllowsArbitraryLoads not working中所述,您必须编辑“Info.plist”文件。我没有这样的文件。我有“ZaoMengShe-Info.plist”(“ZaoMengShe”是我的应用程序的名称)。但是没有一个问题显示包含文件名的实际屏幕截图,所以据我所知,每个人的 Info.plist 文件实际上都包含应用程序的名称,这很正常。我弄错了吗?