IOS中对webView页面添加 缓存。

来源:互联网 发布:网络教育环境的组成 编辑:程序博客网 时间:2024/06/04 10:00

if (_webView) {

       NSString *urlAddress = [_urlabsoluteString];

       NSURL *url = [NSURLURLWithString:urlAddress];

        NSURLRequest *request = [NSURLRequestrequestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoadtimeoutInterval: 10.0];

        [_webViewloadRequest:request];

        

        NSData *data0 = [NSURLConnectionsendSynchronousRequest:

                         [NSURLRequestrequestWithURL:url]

                                             returningResponse:nil

                                                         error:nil];

       

//调用EGO

        [[EGOCacheglobalCache] setData:data0forKey:@"webCache"];

    }




-(void)loadPage:(NSString *)urlAddress {

    

   NSURL *url = [NSURLURLWithString:urlAddress];

    NSString* cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES)objectAtIndex:0];

    NSString* file = [cachePathstringByAppendingPathComponent:@"/xxx.APPNAME/EGOCache/EGOCache.plist"];

    NSDictionary *dict =[NSDictionarydictionaryWithContentsOfFile:file];

    

   if ([dict objectForKey:urlAddress] )

    {

//        NSData *data = [[EGOCache globalCache] dataForKey:urlAddress];

//        data = [NSURLConnection sendSynchronousRequest:

//                [NSURLRequest requestWithURL:url]

//                                     returningResponse:nil

//                                                 error:nil];

//        NSLog(@"loading from cache %@",urlAddress);

        

    }else{

        NSData  *data = [NSURLConnectionsendSynchronousRequest:

                         [NSURLRequestrequestWithURL:url]

                                             returningResponse:nil

                                                         error:nil];

        [[EGOCacheglobalCache] setData:dataforKey:urlAddress];

       NSLog(@"saving cache %@",urlAddress);

        [[EGOCacheglobalCache] setDefaultTimeoutInterval:60*60*24*4];//timeout (4 days)

    }

    NSURLRequest *request = [NSURLRequestrequestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoadtimeoutInterval: 10.0];

    

    [_webViewloadRequest:request];

}

0 0