我正在研究一個示例應用程序,以便能夠將簡單的html數據加載到webview中而不會扭曲內容。在我的Activity中,我使用org.apache.http包連接到一個網站,並在私有方法openGoogleHomePage()中檢索它的內容。在WebView中加載html數據
DefaultHttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet("http://www.google.com");
get.setHeader("Content-Type", "application/x-www-form-urlencoded");
get.setHeader("User-Agent","Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; HTC Desire 1.19.161.5 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17");
HttpResponse response = client.execute(get);
String data = new BasicResponseHandler().handleResponse(response);
data = data.replaceAll("%", "%");
return data;
當我比較「數據」到時在Firefox瀏覽器中打開http://www.google.com實際html內容響應,內容是一樣的。但是,當我嘗試將這個'數據'加載到webview中時,我沒有看到任何類似的東西。
LinearLayout layout = (LinearLayout) View.inflate(this, R.layout.main, null);
setContentView(layout);
WebView browser = (WebView) layout.findViewById(R.id.webPage);
browserSettings = browser.getSettings();
browserSettings.setJavaScriptCanOpenWindowsAutomatically(true);
browserSettings.setJavaScriptEnabled(true);
browserSettings.setSavePassword(false);
browserSettings.setSaveFormData(false);
browserSettings.setSupportZoom(false);
browser.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
String htmlData = openGoogleHomePage();
if (htmlData != null) {
browser.loadData(htmlData, "text/html", HTTP.UTF_8);
}
Whatelse我要在我的代碼更改爲能夠查看完全按照我在PC上的瀏覽器做的WebView?另一方面,如果不經歷使用http包調用URL的艱辛過程,而是使用webview.loadUrl(「http://www.gooogle.com」)調用webview中的url,當然會檢索移動版本的搜索巨頭的網頁,這是不同於PC瀏覽器版本。
簡而言之,我想在我的webview中看到在我的本地自定義代碼中處理http調用後,我在PC瀏覽器中看到的究竟是什麼。
另外,如果有人可以在處理url重定向時顯示一些指針,那將有很大的幫助。
你可以保存到一個文件並使webview指向它:D – PedroAGSantos