ユーザーが生成した HTML をwebview
usingで表示しようとしている状況がありますloadData
。私のコードは次のようなものです:
String content = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" +
"<html><head>" +
"<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />" +
"</head><body>";
content += htmlStr + "</body></html>";
wv.loadData(content, "text/html", "UTF-8");
ほとんどの場合、うまく機能しますが、特定の種類の画像を表示するのに問題があります。私のテストのほとんどで、<img src="..."/>
タグの挿入は問題なく機能しましたが、Photobucket の画像へのリンクがまったく表示されないことがわかりました。画像の代わりに疑問符の付いた小さなボックスが表示されます。
Photobucket の画像へのリンクをクリックすると、生の画像自体ではなく、その画像が Web サイトで表示できるページに移動する傾向があります。この問題はこれに関連していると感じています。「Referer」の問題か、おそらくユーザーエージェントか、またはその性質のものである可能性があると思いますが、私の人生ではこれを適切に表示することはできません。
(これがリファラーURLとして使用されると思われるため)に切り替えてloadDataWithBaseURL
提供しようとしましたが、違いはありませんでした。代わりに をBaseURL
使用して、Referer ヘッダーを手動で設定して提供しようとしましたが、どちらも機能しませんでした。実際、に切り替えると、すぐにデバイスのブラウザーにリダイレクトされ、Photobucket ページが読み込まれました。customと overrideを提供しようとしましたが、最善の方法は、.loadUrl("http://photobucket..."
HashMap
loadUrl
WebViewClient
shouldOverrideUrlLoading
WebView
これは Photobucket に固有の問題ではなく、たまたまテスト中にこの問題を発見したサイトであると確信しています。
これが正しく機能するように、この状況に対処する方法を考えたいと思いますが、SOまたはインターネット全体で役立つ方向性をまだ見つけることができません. 誰にもアイデアはありますか?