1

私は現在iOS開発の初心者であり、キャッシュポリシー(NSURLRequestReturnCacheDataDontLoad)を取得してキャッシュからプルし、iPhoneでオフライン(機内モードを使用)でWebページを表示しようとしています。私は現在、Appleが提供するReachability APIを使用して、ネットワーク/Wi-Fi接続が稼働しているかどうかを確認しています。これは正常に機能しますが、機内モードに移行すると、UIWebViewにデータを入力するためのWebページが表示されません。どんな提案も非常に役に立ちます。私はオンラインで周りを見回しましたが、あまり役立つリンクは見つかりませんでした。ありがとう。

コードは以下のとおりです。

*- (IBAction)refresh:(id)sender 
{
    NSURL *url = [NSURL URLWithString:_entry.articleUrl]; 
    NSURLRequest *webRequest = nil;

    NSString *articleUrl = [_entry.articleUrl substringFromIndex:7];

    NSArray *myArray = [articleUrl componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"/"]];

    NSString *hostUrl = [myArray objectAtIndex:0];

    NSLog(@"%@", hostUrl);
    Reachability *reachability = [Reachability reachabilityWithHostName:hostUrl];

    NetworkStatus netStatus = [reachability currentReachabilityStatus];

    [[NSURLCache sharedURLCache] setMemoryCapacity:1024*1024*10];

    // Verify current help file cache if we have network connection...
    if (netStatus == ReachableViaWWAN || netStatus == ReachableViaWiFi) 
    {
        webRequest = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30];   
    } 
    else 
    {
        // Network NOT reachable - show (local) cache if it exists
        webRequest = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataDontLoad timeoutInterval:30];
    }

    [_webView loadRequest:webRequest];
}*
4

1 に答える 1

1

残念ながら、UIWebViewWebページのキャッシュは保持されません。私はこれを行ったことがありませんが、AFCacheを使用するとキャッシュを永続化できます。

また、キャッシュされたページが適切に配置されていることを確認してください。Webページがキャッシュ可能でない場合(つまり、プラグマ:no-cache)、UIWebViewそれでもキャッシュされない可能性があります。

于 2012-05-15T02:42:40.547 に答える