WKWebView コンテンツを iOS アプリに保存してオフライン アクセスできるようにする

今日の接続された世界では、ユーザー エクスペリエンスを向上させ、情報への継続的なアクセスを確保するには、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

おすすめ

転載: blog.csdn.net/iCloudEnd/article/details/131299236