在WebView中加载HTML数据 [英] Loading html data in WebView

查看:136
本文介绍了在WebView中加载HTML数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在一个示例应用程序的工作才能够简单的HTML数据加载到web视图不扭曲的内容。在我的活动,我使用的org.apache.http包连接到一个网站,并检索它在一个私有方法openGoogleHomePage内容()。

I am working on an example app to be able to load simple html data into a webview without distorting the content. In my Activity, I am using the org.apache.http packages to connect to a website and retrieve it's content in a private method openGoogleHomePage().

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;

当我数据比较在打开实际的HTML内容的响应 http://www.google.com 在firefox浏览器,内容是一样的。然而,当我尝试加载该数据到网页视图,我没有看到这样的事情。

When I compare 'data' to the actual html content response upon opening http://www.google.com on firefox browser, the content is the same. However, when I try to load this 'data' into a webview, I don't see anything like it.

    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我有我的code更改为能够查看完全按照我在PC上的浏览器做的WebView?在另一方面,不通过使用HTTP包调用的URL,当然使用webview.loadUrl(http://www.gooogle.com)从web视图而不是调用URL的艰苦的过程去,检索移动版搜索巨头的页面,这是比PC浏览器版本的方式不同。

Whatelse do I have to change in my code to be able to view in the webview exactly as I do in the browser on a PC? On the other hand, without going through the painstaking process of invoking the URL using the http packages, and instead invoking the url from the webview using webview.loadUrl("http://www.gooogle.com") of course, retrieves the mobile version of the search-giant's page, which is way different than the PC browser version.

总之,我想在我的WebView看正是我看到在PC浏览器,在我的家乡习俗code处理HTTP调用后。

In short, I want to see in my webview exactly what I see on a PC browser, after handling the http invocations in my native custom code.

另外,如果有人能证明在处理URL重定向一些三分球,这将是有很大帮助。

Also, if someone could show some pointers at handling url redirects, that would be of much help.

推荐答案

一些移动设备检测可以基于用户代理。
尝试将用户代理在WebView中加入多一个设置,您的WebView使用台式机产品。

Some mobile device detection could be based on the user-agent. Try setting the UserAgent in the WebView to use Desktop counterpart by adding one more setting to your WebView.

  browserSettings.setUserAgentString("Mozilla/5.0");

这篇关于在WebView中加载HTML数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆