0

このコンテンツをWebViewにロードしたいと思います。

私がこのようにしようとすると:

myWebView.loadUrl(myUrlAdress);

コンテンツを読み込んでいますが、すべてのhtml形式が表示されているため、すべての段落タグとcssスタイル定義を確認できるため、プレーンテキストのようになります。

私がこのようにしようとすると:

myWebView.loadDataWithBaseURL(myUrlAdress, null, "text/html", "UTF-8", null);

単に何も起こらず、webviewはデータなしでは空白のままです。

私が試した最後の方法は次のとおりです。

myWebView.loadDataWithBaseURL(myUrlAdress, myUrlAdress, "text/html", "UTF-8", null);

今回は、Webビューは、データを取得しようとしたときのリンクを出力するだけで、他には何もありません。

誰かがどちらに行くべきか、そして何が問題なのか教えてもらえますか?

4

1 に答える 1

1

問題は、サーバーがコンテンツタイプtext / jsonを返しているため、loadUrlを使用するWebViewが、HTMLを解析して表示する必要があることを認識していないことです。loadDataWithBaseUrlを使用する場合、データ文字列は、指定するURLだけでなく、実際のHTMLである必要があります。サーバー出力を制御できない場合は、データを文字列にダウンロードし、その文字列をデータとしてWebビューにロードする必要があります。たとえば、アクティビティの内部クラスとして次のようになります。

public class WebLoader extends AsyncTask<String, String, String> {

    @Override
    protected String doInBackground(String... params) {
        try {
            final HttpClient client = new DefaultHttpClient();
            final HttpGet request = new HttpGet(params[0]);
            BasicResponseHandler handler = new BasicResponseHandler();
            return client.execute(request, handler);
        }
        catch (Exception e) {
            // do something
            return null;
        }
    }

    @Override
    protected void onPostExecute(String html) {
        webview.loadDataWithBaseURL(url, html, "text/html", "UTF-8", null);
    }

}
于 2013-03-23T17:38:29.720 に答える