WKWebView加载gif图片
NSString *path = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"gif"];
NSURL *url = [NSURL fileURLWithPath:path];
self.webView = [[WKWebView alloc] initWithFrame:webRect];
[self.webView loadRequest:[NSURLRequest requestWithURL:url]];
iOS 9.0 提供了方法 - (nullable WKNavigation *)loadFileURL:(NSURL *)URL allowingReadAccessToURL:(NSURL *)readAccessURL API_AVAILABLE(macos(10.11), ios(9.0)) 加载文件;
参数 readAccessURL 指定文件目录范围,可以访问沙盒中的文件.
如果要读取bundle中的文件,像上面的例子
[self.webView loadFileURL:url allowingReadAccessToURL:[[NSBundle mainBundle] bundleURL]];
读取沙盒文件的话把后面的目录改成沙盒目录
NSString *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true)[0];
NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"gif"];
NSData *data = [NSData dataWithContentsOfFile:path];
NSString *file = [documents stringByAppendingPathComponent:@"image.gif"];
[data writeToFile:file atomically:YES];
NSURL *url = [NSURL fileURLWithPath:file];
self.webView = [[WKWebView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
[self.webView loadFileURL:url allowingReadAccessToURL:[NSURL fileURLWithPath:documents]];
[self.view addSubview:self.webView];
把readAccessURL改成url(两个url都传文件路径)也可以读取到图片,这个字段具体用法还不太理解,需再研究。