IOS应用加载本地WebView禁止进行缓存(使用私有api)

UIWebView神奇的缓存简直就是坑爹的呀。。

在生成request的时候禁止使用cache

删除响应的缓存数据

完全无效,还是会自动去加载缓存,reload都无效。

~~~~解决办法~~~~

// Declare the private WebCache interface so
// that it can be cleared / disabled.
@interface WebCache : NSObject
+ (void)empty;
+ (void)setDisabled:(BOOL)arg1;
@end

...

// Disable or enable the cache
[WebCache setDisabled:disabled];

使用WebKit的私有API。添加WebCache.h文件,在加载WebView的时候使用

[WebCache setDisabled:YES]就可以成功阻止UIWebView莫名其妙的缓存了~!


不过,使用私有API的app上线是会悲剧的哦~!所以就只能自己玩玩啦~!


如何使用私有API:

首先要使用class-dump 和dumpFrameworks.pl 工具 将ios的framework导出来。

以下是工具的下载地址:

class-dump下载地址 http://www.codethecode.com/projects/class-dump/

DumpFrameworks.pl原来的下载地址不能用了,我在github上的别人的越狱程序里面找到的。

下载地址:https://github.com/shuhongwu/HackSpringDemo/blob/master/DumpFrameworks.pl

自己用的时候创建的: http://pan.baidu.com/s/1kTsuxCj   里面版本路径是xcode6.2,可以下载下来对比下github上的文件

将下载好的 class-dump 放入usr/local/bin 下. 

   如果 ‘/usr/local/bin’ 不知道在哪里,可以在terminal 下输入 ‘open -a Finder /usr/local/bin’ 以便打开目录.

这个bin文件夹  就是所有命令行的可执行文件所在地,并不一定是这个目录,要看各自的系统。 

因为dumpFrameworks.pl中对ios库的版本路径可能不一定正确了,所以要自己手动改正

用terminal直接执行dumpFrameworks.pl就可以了。

会将所有到处的头文件,放到user/Headers文件夹下。

将想用的头文件,组成xxx.framework/Headers的样式。导入工程。

但是bulidsetting 设置framework的search path 时要设置真实的私有库路径,因为我们要用它的可执行文件,只有头文件是不行的。

例如:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/PrivateFrameworks

这样就可以调用ios的私有库了



你可能感兴趣的:(IOS应用加载本地WebView禁止进行缓存(使用私有api))