1. 程式人生 > >使用WebView載入資料出現找不到網頁的問題之解決辦法(轉)

使用WebView載入資料出現找不到網頁的問題之解決辦法(轉)

在使用webView.loadData(data, "text/html", "utf-8"),出現找不到網頁的問題,
檢查之後發現data資料是正確的,也有上網的許可權,可是就是找不到網頁,
後經過查詢,找到了解決方法:把 webView.loadData 改為 webView.loadDataWithBaseURL 方法就可以了,
可以這樣使用:webView.loadDataWithBaseURL(null,data, "text/html",  "utf-8", null);

原因如下:     loadData()中的html data中不能包含'#', '%', '\', '?'四中特殊字元,出現這種字元就會出現解析錯誤,
顯示找不到網頁還有部分html程式碼。因為css中經常用'#', '%'等字元,所以大部分網頁會出現解析錯誤,需要如何處理呢?我們需要用UrlEncoder編碼為%23, %25, %27, %3f 。
      webView.loadData(URLEncoder.encode(data, "utf-8"), "text/html",  "utf-8"); 這樣寫之後會發現錯誤沒有了,但是顯示效果不好,一些背景顏色排版效果都沒有了。 public void  loadDataWithBaseURL  ([url=]String[/url] baseUrl, [url=]String[/url] data, [url=]String[/url] mimeType, [url=]String[/url] encoding, [url=]String[/url] historyUrl)


推薦使用loadDataWithBaseURL(),只是多了兩個引數,我們可以這樣使用 webView.loadDataWithBaseURL(null,data, "text/html",  "utf-8", null); 這樣html程式碼就會完美解析了。 注意,訪問網路要在配置檔案中加上許可權

webView.getSettings().setJavaScriptEnabled(true);   讓WebView 支援JavaScript。 原文:http://www.eoeandroid.com/thread-185654-1-1.html