3
我使用DefaultHttpClient
類將一些數據發佈到服務器,並在響應流中獲取HTML文件。我的流保存爲一個字符串,並把它傳遞到其中包含一個web視圖來呈現在屏幕上該HTML另一個活動:webView內部的HTML
response = httpClient.execute(get);
InputStream is = response.getEntity().getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));
StringBuffer sb = new StringBuffer();
String line;
while((line=br.readLine())!=null){
sb.append(line);
sb.append("\n");
}
is.close();
Intent intent = new Intent(this,Trial.class);
intent.putExtra("trial",sb.toString());
startActivity(intent);
Log.i("SB",sb.toString());
在第二個活動,加載web視圖的代碼讀取:
WebView browser = ((WebView)findViewById(R.id.trial_web));
browser.getSettings().setJavaScriptEnabled(true);
browser.loadData(html,"text/html", "utf-8");
當我運行此代碼時,WebView無法正確呈現HTML內容。它實際上在屏幕上以URL編碼格式顯示HTML字符串。有趣的是,如果我將Loggers輸出複製到HTML文件,然後在我的WebView中加載這個HTML(使用webview.loadurl(file:///assets/xyz.html)
),一切正常。
我懷疑字符編碼有些問題。
這裏怎麼回事?請幫忙。
謝謝。
再次感謝馬克! 這是loadDataWithBaseURL()第二次完成其重載的對應部分。首先,它是對內聯CSS樣式的再現,現在是這樣。爲什麼這個特質,任何想法? 另外,感謝提醒我BasicResponseHandler,我幾乎已經忘記了它。 乾杯! – Samuh 2010-03-26 15:10:57
「爲什麼這個特質,任何想法?」 - 每次我想我有一個模式,其他的東西都會打破它,所以現在我只是直接發誓loadData()。 – CommonsWare 2010-03-26 19:05:45