バックグラウンド
最近一緒に訪れた Web ページをリンクするアプリを作成しています。
これを行うには、Cocoa を使用して最近の URL の HTML を取得する必要があります。
現在、これを行うために非表示の WebView を使用しています。
私が理解しているように、URL がアプリのキャッシュにない場合、これは Web サーバーにヒットしています。
私が欲しいもの
ページが既にアクセスされているため、取得している URL が Safari によって既にキャッシュされている可能性が高くなります。
アプリで最初に URL の Safari のキャッシュをチェックするようにします。そこにある場合は、このデータを使用するだけです。そうでない場合は、Web サーバーにヒットし、ページをアプリのキャッシュに保存する必要があります。
sqlite3 を使用して Safari から cache.db ファイルを解析する必要はありません。この形式が同じままかどうかはわかりません。私は、よりシンプルでより高レベルなものを求めています。
私が試したこと
メソッドを使用して独自の NSURLCache を設定できることは知っていますがinitWithMemoryCapacity:diskCapacity:diskPath:
、書き込みによって Safari が台無しになる場合に備えて、これを Safari キャッシュにポイントしようとはしません。
Safari キャッシュを共有する簡単で高度な方法はありますか?
アップデート
あはは。私が見逃していたこれを行う方法があるかもしれないことに気づきました。
withの新しいインスタンスを作成NSURLCache
しinitWithMemoryCapacity:diskCapacity:diskPath:
、それを Safari キャッシュにNSURLRequestReturnCacheDataDontLoad
向けて、ページのロード時に URL リクエストのキャッシュ ポリシーを指定できます。
これが失敗した場合は、通常どおりページを読み込んでみることができます。これを試して、詳細がわかったら質問を更新します。