ios – 使用SDWebImage忽略查询参数

前端之家收集整理的这篇文章主要介绍了ios – 使用SDWebImage忽略查询参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用SDWeb Image在我的应用程序中缓存图像,但是我最近遇到了一个问题,应该缓存的图像保持刷新.调查一下,我发现来自AWS的完整图像网址实际上是由于参数添加到网址末尾而发生变化.每次我获取包含图像URL的对象时,图像url返回动态“签名”和“过期”参数(出于安全目的).就图像缓存而言,是一个不同的URL,但请注意图像的相同路径.

首先获取

https://myapp.s3.amazonaws.com/path/image123.jpeg?AWSAccessKeyId=SOMEKEY\u0026amp;Signature=vrUFlMFEQ9fqQ=\u0026amp;Expires=1441702633

1秒后再次获取

https://myapp.s3.amazonaws.com/path/image123.jpeg?AWSAccessKeyId=SOMEKEY\u0026amp;Signature=2mcMxUJLyJd7E=\u0026amp;Expires=1441703105

处理这种情况的最佳方法是什么?如果SDWebImage有一个选项可以忽略文件路径之外的查询参数,那么肯定会很棒.

解决方法

SDWebImage有一个允许使用自定义键的方法,这有助于在这种情况下AWS每次调用时都会更改查询.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary    *)launchOptions
{
    SDWebImageManager.sharedManager.cacheKeyFilter = ^(NSURL *url) {
        url = [[NSURL alloc] initWithScheme:url.scheme host:url.host path:url.path];
        return [url absoluteString];
    };

    // Your app init code...
    return YES;
}

欲了解更多信息:SDWebImage | Using the cache key filter

猜你在找的iOS相关文章