0

タブレット向けに最適化されたウェブサイトを持っています。ページに戻るためのリンクを表示し、JavaScript 関数を呼び出しますwindow.history.back()。iPad の Safari ブラウザーでは、このリンクは、サーバーに別の要求を行うのではなく、キャッシュされたページを履歴から読み込むことによって、必要に応じて機能します。ただし、単純なネイティブ アプリで UIWebView を介して同じサイトを開くと、同じリンクを使用して戻るたびにサーバーへの要求が発生します。

次の方法でこれを修正できることがわかりました。

  1. HTTP 応答ヘッダーの削除Pragma: no-cache
  2. Cache-Control ヘッダーを「max-age=900」に設定 (15 分)

ただし、これらのサーバー側の変更は UIWebView にのみ必要であり、Safari や Chrome などの実際のブラウザーには必要ないようです。場合によっては、ネイティブ アプリの開発者は、呼び出しているサーバーを制限したり、まったく制御したりできません。したがって、UIWebView のこの動作をクライアント側で制御して、モバイル Safari がこの目的で行うように動作させることが望ましいと思われます。どんな提案でも大歓迎です!

私のテストのほとんどは、iOS バージョン 6.1.3 を搭載した iPad 2.0 で行われたことに注意してください。

4

1 に答える 1

0

webview で URL を読み込むには、次のコードを試してください。

NSData *urlData; NSString *baseURLString = @"yoursite.com"; NSString *urlString = [baseURLString stringByAppendingPathComponent:@"yourfile"];

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval: 10.0]; NSURLConnection *connection=[[NSURLConnection alloc] initWithRequest:request delegate:nil];

if (接続) { urlData = [NSURLConnection sendSynchronousRequest: リクエスト];

NSString *htmlString = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
[webView loadHTMLString:htmlString baseURL:baseURLString];
[htmlString release];

}

[接続解除];

于 2013-06-27T13:27:14.233 に答える