WKWebView iOS11以下本地中文路径html加载不出的坑

  WKWebView是在Apple的WWDC 2014随iOS 8和OS X 10.10出来的,是为了解决UIWebView加载速度慢、占用内存大的问题。
使用UIWebView加载网页的时候,我们会发现内存会无限增长,还有内存泄漏的问题存在。
WebKit中更新的WKWebView控件的新特性与使用方法,它很好的解决了UIWebView存在的内存、加载速度等诸多问题。
现在基本上都是从iOS 8 ,9起步了, 所以好像是没什么必要用UIWebView了。

本文讲的是我遇到的一个奇怪的现象。

两台手机: 1. iOS10.2.1 2.iOS 11.2.2
本地html目录 如下:


目录.png

获取路径的代码,一开始我是这样直接获取url 加载

NSURL *url=[[NSBundle mainBundle]URLForResource:@"index" withExtension:@"html" subdirectory:@"接入天猫精灵"];
NSURL *url1=[[NSBundle mainBundle]URLForResource:@"index" withExtension:@"html" subdirectory:@"Access to Google"];

结果在iOS 10.2.1上中文的路径死活加载不出,iOS 11.2.2上又没有一点问题。
然后我用另外这种方式:

 NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"接入天猫精灵"];
 NSString *path1 = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"Access to Google"];

结果还是跟上面的结果一样,这个时候我看到打印出来的路径,懵圈了。


iOS 11.png

iOS10.png

我擦了· iOS 10.2.1上面中文路径 竟然少了字,被狗吃了吗·=-=。

最后换只能换下面的方式加载了。

NSString *basePath = [NSString stringWithFormat:@"%@/%@",[[NSBundle mainBundle] bundlePath],@"接入天猫精灵"];
NSString *htmlPath = [NSString stringWithFormat:@"%@/index.html",basePath];
NSURL *url=[NSURL fileURLWithPath:htmlPath];
[wkWebView loadFileURL:url allowingReadAccessToURL:url];

记录一下 ,防止再次被坑。有知道原因的大佬,可以说一下哈。

你可能感兴趣的:(WKWebView iOS11以下本地中文路径html加载不出的坑)