问题描述:
使用webview加载本地轻应用,在app启动状态下,更新本地轻应用文件,用webview重新打开,但是依然显示更新前的效果。必须杀掉进程,用webview重新加载才能看到更新后的效果。
尝试过的方法
- 生成request的时候禁止使用cache:
[NSURLRequest requestWithURL:request.URL
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:request.timeoutInterval]; - 删除网络响应的缓存数据:
[[NSURLCache sharedURLCache] removeAllCachedResponses]; - 修改NSUserDefaults中跟webview相关的设置
[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"WebKitCacheModelPreferenceKey"];
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitDiskImageCacheEnabled"];
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitOfflineWebApplicationCacheEnabled"];
[[NSUserDefaults standardUserDefaults] synchronize];
当然,以上方法都没有作用。
解决方法
后来在广大热心网友的帮助下,找到以下解决方法(文章链接)
Class webCache = NSClassFromString(@"WebCache");
SEL selector = NSSelectorFromString(@"setDisabled:");
[webCache performSelector:selector withObject:@YES];
网友评论