2012-12-11 51 views
26

我有一個包含這樣的HTML字符串:如何在webview中加載html字符串?

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> 
    <html> 
     <head> 
     <meta http-equiv="content-type" content="text/html; charset=windows-1250"> 
     <meta name="spanish press" content="spain, spanish newspaper, news,economy,politics,sports"> 
     <title></title> 
     </head> 
     <body id="body"> 
<!-- The following code will render a clickable image ad in the page --> 
     <script src="http://www.myscript.com/a"></script> 
     </body> 
    </html> 

我需要到該網站顯示成Android的網頁視圖。

我tryed這一切:

webView.loadDataWithBaseURL(null, txt, "text/html", "UTF-8", null); 
webView.loadDataWithBaseURL("x-data://base", txt, "text/html", "UTF-8", null);  
webView.loadDataWithBaseURL("notreal/", txt, "text/htm", "utf-8",null); 

而且我tryed除去DOCTYPE標籤:

txt=txt.replace("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">", "");

那些沒有人有工作。我剛剛實現將字符串顯示到webview(html代碼)中,但不是必須使用該html代碼創建的網站。

出了什麼問題?

+0

讀你嘗試'loadData'? – njzk2

+0

你可以把這個html字符串放在res/values/strings.xml文件中,然後用例如'你的html這裏創建的項目'然後通過'Html.fromHtml(getString(R.string .website))',請檢查它是否有一些時間,因爲我想知道它是否也可以工作;) – deadfish

+0

(無論如何,你需要基礎url?) – njzk2

回答

70

在WebView中加載數據。調用loadData的WebView

wv.loadData(yourData, "text/html", "UTF-8"); 

()方法可以檢查這個例子

http://developer.android.com/reference/android/webkit/WebView.html

[編輯1]

您應該添加 - \ - 之前 - 「 - 例如 - >name = \「西班牙新聞\」

下面的字符串爲我工作

String webData = "<!DOCTYPE html><head> <meta http-equiv=\"Content-Type\" " + 
"content=\"text/html; charset=utf-8\"> <html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=windows-1250\">"+ 
"<meta name=\"spanish press\" content=\"spain, spanish newspaper, news,economy,politics,sports\"><title></title></head><body id=\"body\">"+ 
"<script src=\"http://www.myscript.com/a\"></script>şlkasşldkasşdksaşdkaşskdşk</body></html>"; 
+0

不起作用,只是顯示一個沒有內容的空白視圖。 – NullPointerException

+1

請看編輯的答案 – skaya129

+0

對於正確的UTF-8,你應該使用'webView.loadData(data,「text/html; charset = UTF-8;」,null);'按照http:// stackoverflow。com/a/9312031 –

0

我有同樣的要求,我在下面way.You也可以嘗試這樣做的..

使用loadData方法

web.loadData("<p style='text-align:center'><img class='aligncenter size-full wp-image-1607' title='' src="+movImage+" alt='' width='240px' height='180px' /></p><p><center><U><H2>"+movName+"("+movYear+")</H2></U></center></p><p><strong>Director : </strong>"+movDirector+"</p><p><strong>Producer : </strong>"+movProducer+"</p><p><strong>Character : </strong>"+movActedAs+"</p><p><strong>Summary : </strong>"+movAnecdotes+"</p><p><strong>Synopsis : </strong>"+movSynopsis+"</p>\n","text/html", "UTF-8");

movDirector movProducer像所有的都是我的字符串變量。

總之我保留我的網址自定義樣式。

3

您也可以嘗試這個

final WebView webView = new WebView(this); 
      webView.loadDataWithBaseURL(null, content, "text/html", "UTF-8", null); 
3

從資產HTML文件

ViewGroup webGroup; 
    String content = readContent("content/ganji.html"); 

     final WebView webView = new WebView(this); 
     webView.loadDataWithBaseURL(null, content, "text/html", "UTF-8", null); 

     webGroup.addView(webView); 
相關問題