说明:记录工作中遇到的一些问题,方便查看,同时也希望能给大家一点帮助。
自从苹果官方要求上传到苹果应用商店里面的app必须是wkwebview,不在支持uiwebview后,corddova官方就从cordova-ios6.0起,移除了以前的uiwebview,全面更换成了wkwebview。wkwebview相对于uiview来说运行速度更快,占用内存更少,也更安全。但是也带来了问题。
问题1:Cordova iOS 在HTML内嵌入外部超链接如链接外部的一张图片,或者加载本地文件所出现的跨域问题?
解决方法:因为在wkwebview中不能使用http协议的网址,必须为https协议的网址,所以直接将链接改为https的。然后在info.plist文件中设置NSAppTransportSecurity属性,具体设置如下图:
问题2:Cordova iOS工程中ajax 请求出现的跨越的跨域问题?
解决方法:在CDVWebViewEngine.m文件中createConfigurationFromSettings方法下增加如下代码
[configuration.preferences setValue:@YES forKey:@"allowFileAccessFromFileURLs"];
[configuration setValue:@YES forKey:@"_allowUniversalAccessFromFileURLs"];
具体操作如下图:
以上就是解决Cordova ios 的跨域问题,如果你不清楚是哪里出现问题,直接暴力解决把所说的方法全部设置一下,基本上能解决问题,希望对大家有所帮助,谢谢!