WebView
にURLからではなく直接HTMLソースを渡して表示するには次の2つのメソッドを使う方法があります。
loadData(String data, String mimeType, String encoding)
loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl)
どちらのメソッドもHTMLソースを渡せばそれがHTML文章として表示されます。例えば次のようなコードです。
WebView webView = (WebView)findViewById(R.
id.webView
);
String htmlSource =
"<p>WebViewに表示された<b>HTML文章</b>です。</p>"
;
webView.loadDataWithBaseURL(
null
, htmlSource,
"text/html"
,
null
,
null
);
WebView
では標準でAsciiコードを文字コードに使っているので、文字コードを指定しない場合、次のように文字化けしてしまいます。
そこでWebViewで
loadDataWithBaseURL
メソッドを使って文字コードを指定してあげます。
webView.loadDataWithBaseURL(
null
, htmlSource,
"text/html"
,
"UTF8"
,
null
);
loadData
メソッドについても同じように文字コードは渡せますが機種によっては文字化けしてしまう場合もあるようです。