4

HTML データを含む WebView に問題があります (URL は読み込まず、HTML のカスタム コンテンツを読み込みます)。私が使う:

mWebView.loadData(mContent, "text/html; charset=utf-8", "utf-8");

この HTML コード (mContent) 内に、たとえば次のような Twitter ブロック引用埋め込みコードがある場合があります。

<blockquote class="twitter-tweet"><p>"Will Remote Play on the PS Vita be available for <a    style="color:#ff8600;" href="https://twitter.com/search?q=%23D3&src=hash">#D3</a> Ultimate Edition on <a style="color:#ff8600;" href="https://twitter.com/search?q=%23PS4&src=hash">#PS4</a>?" The answer is yes, and it's awesome! <a style="color:#ff8600;" href="http://t.co/Rg059nXZMF">pic.twitter.com/Rg059nXZMF</a></p> Diablo (@Diablo) <a style="color:#ff8600;" href="https://twitter.com/Diablo/statuses/400073137590530048">November 12, 2013</a></blockquote>

だから問題は何ですか?さて、私の WebView は、スタイルや画像なしでツイートのテキストのみを表示します。(このコードは、私の iOS アプリで完全に機能します。)

WebView で JavaScriptEnabled(true) を設定し、WebChromeClients と loadDataWithBaseURL でいくつかのことを試しましたが、埋め込まれたツイートを WebView にうまく表示することができませんでした。

どうすればそれができるのか誰にもわかりませんか?

4

3 に答える 3

7

この問題を解決するには、いくつかの方法が考えられます。

への呼び出しを次のように置き換えることができますloadData

loadDataWithBaseURL("https://twitter.com", mContent, "text/html", "UTF-8", null);

または、html 文字列 (mContent) のヘッドに次の内容が含まれていることを確認できます。

<script type="text/javascript" src="https://platform.twitter.com/widgets.js"></script>

着信 HTML を制御できない場合は、Jsoupを使用して自分でコンテンツを修正してみてください。

Document doc = Jsoup.parse(mContent);
doc.head().appendElement("script").attr("type", "text/javascript").attr("src", "https://platform.twitter.com/widgets.js");

// This is the html that includes the appropriate reference to Twitter's widgets.js script
String newHtml = doc.toString();
于 2015-07-13T21:24:52.000 に答える