IOS 把js css 缓存到客户端
在开发webapp 过种中,加载js css 这些文件很头疼,所以我们把他存到客户端,并且可以随时更新,只要能从服务器端取得html 就行了,再用webview 来展示
下面是一段测试代码:
//html
NSString *html = @"@import url('style.css');
[StorageUtil writeToFile:html filename:@"test.html"];
//css
NSString *css = @"#hx{font-size:56px; color:blue;}";
[StorageUtil writeToFile:css filename:@"style.css"];
//js
NSString *js = @"function showmsg(){ alert('嘿黑!');}";
[StorageUtil writeToFile:js filename:@"test.js"];
//加载html
NSString *filePath = [[ IMFileHelper documentPath] stringByAppendingPathComponent:@"test.html"];
NSString *htmlstring= [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
NSString *basePath = [ IMFileHelper documentPath];
[webview loadHTMLString:htmlstring baseURL:[NSURL fileURLWithPath:basePath]];//加载
StorageUtil.writeToFile 是用来写文件的,代码如下
+(BOOL)writeToFile:(NSString *)data filename:(NSString *)name { NSString *documentsDirectory = [[ IMFileHelper documentPath] stringByAppendingPathComponent:name]; NSData* tdata = [data dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; //创建数据缓冲 NSMutableData *writer = [[NSMutableData alloc] init]; //将字符串添加到缓冲中 [writer appendData:tdata]; //[writer appendBytes:&data length:sizeof(data)]; //将缓冲的数据写入到文件中 BOOL result = [writer writeToFile:documentsDirectory atomically:YES]; //NSFileManager *fileManager = [NSFileManager defaultManager]; //BOOL result = [fileManager createFileAtPath:documentsDirectory contents:[tdata dataUsingEncoding:NSUTF8StringEncoding] attributes:nil]; if(!result) { NSLog(@"Failed to write File"); }else{ NSLog(@"Not to write File"); } }