1. ホーム
  2. android

[解決済み] カスタムCSSでWebViewにHTMLを描画する

2023-07-01 20:55:42

質問

私のアプリは JSoup を使用して、メッセージ ボードのページの HTML をダウンロードしています (この場合、特定のスレッドの投稿を含むページであるとします)。この HTML を取得し、不要な項目を削除し、カスタム CSS を適用して WebView で「モバイル」スタイルにしたいと思います。

処理するときに HTML にスタイルを注入するべきか (どのみち処理することになるので)、または CSS ファイルを私のアプリの資産に追加して単にそれを参照する良い方法があります。後者が理想的だと思いますが、どのようにすればよいのかわかりません。

私は、WebView の loadDataWithBaseURL で、ローカルアセットを参照することができるというヒントを得ましたが、それをどのように利用すればよいのかわかりません。

どのように解決するのですか?

あなたは WebView.loadDataWithBaseURL

htmlData = "<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" />" + htmlData;
// lets assume we have /assets/style.css file
webView.loadDataWithBaseURL("file:///android_asset/", htmlData, "text/html", "UTF-8", null);

そして、その後にのみ、WebViewはassetsディレクトリからcssファイルを見つけて使用することができるようになります。

ps また、assetsフォルダからhtmlファイルを読み込む場合、ベースURLを指定する必要はありません。