今日の接続された世界では、ユーザー エクスペリエンスを向上させ、情報への継続的なアクセスを確保するには、Web コンテンツへのオフライン アクセスを提供することが重要です。この記事では、オフライン アクセス用に WKWebView コンテンツを保存し、ユーザーがインターネットに接続していなくても Web ページにアクセスできるようにする方法を説明します。Web アーカイブを利用すると、Web ページをローカルに保存し、オフライン時に読み込むことができます。
このチュートリアルは Xcode14.3 を使用して作成されました。
最初にいくつかの理論を
WKWebView は、Web コンテンツをネイティブ アプリケーションに統合できる iOS 開発の強力なコンポーネントです。JavaScript、CSS、HTML5 などの Web テクノロジーのサポートを含む、最新で効率的なブラウジング エクスペリエンスを提供します。
以前のバージョンでは、UIWebView を使用する場合、開発者は NSURLProtocols と NSURLCache を利用して Web ビュー コンテンツを保存できました。ただし、WKWebView のリリースにより、この機能はサポートされなくなりました。したがって、開発者は、オフライン アクセス用にデータをキャッシュする独自のカスタム ソリューションを設計する必要があります。Apple が WKWebView で Web アーカイブを直接作成するための組み込みサポートを導入したのは、iOS 14 以降でした。
Web アーカイブは、Web コンテンツをキャプチャして 1 つのファイルに保存するプロセスであり、一般に Web アーカイブと呼ばれます。HTML ソース コードだけでなく、画像、スタイル シート、スクリプトなどの関連リソースも保存されます。Web アーカイブは、自己完結型パッケージとしてオフラインでロードして表示できます。
ここで、WKWebView コンテンツをキャッシュする例を見てみましょう。
Webアーカイブデータマネージャー
Web アーカイブ データのストレージと読み込みを管理するために、WebArchiveDataManager クラスを作成します。このクラスは、ファイル システムおよび WKWebView コンポーネントとの対話を処理します。
次に、アーカイブを保存および読み取るためのフォルダーを作成する機能を追加します。
class WebArchiveD