【iOS】使用WKWebView加载gif图片

本文介绍了如何在iOS 9.0及以上版本中使用WKWebView加载gif图片。通过调用`loadFileURL:allowingReadAccessToURL:`方法,并指定文件URL和读取权限URL,可以实现加载沙盒或bundle中的gif文件。对于readAccessURL参数的具体用法,文中提到尚待进一步研究。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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都传文件路径)也可以读取到图片,这个字段具体用法还不太理解,需再研究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值