程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

在 WebView 中加载 html 数据

发布于2022-01-27 00:12     阅读(725)     评论(0)     点赞(20)     收藏(3)


我正在开发一个示例应用程序,以便能够将简单的 html 数据加载到 webview 中而不会扭曲内容。在我的活动中,我使用 org.apache.http 包连接到网站并在私有方法 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;

当我在 Firefox 浏览器上打开http://www.google.com时将“数据”与实际的 html 内容响应进行比较时,内容是相同的。但是,当我尝试将此“数据”加载到 web 视图中时,我看不到任何类似的东西。

    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 我必须更改我的代码才能在 web 视图中查看,就像我在 PC 上的浏览​​器中一样?另一方面,无需经历使用 http 包调用 URL 的艰苦过程,而是使用 webview.loadUrl("http://www.gooogle.com") 从 webview 调用 url,当然,检索搜索巨头页面的移动版本,与PC浏览器版本有很大不同。

简而言之,在我的本地自定义代码中处理了 http 调用之后,我想在我的 web 视图中看到我在 PC 浏览器上看到的确切内容。

此外,如果有人可以在处理 url 重定向时显示一些指针,那将有很大帮助。


解决方案


一些移动设备检测可以基于用户代理。通过向您的 WebView 添加一项设置,尝试将 WebView 中的 UserAgent 设置为使用桌面对应项。

  browserSettings.setUserAgentString("Mozilla/5.0");



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.qianduanheidong.com/blog/article/296260/27b1270ffd9d62bcd2dd/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

20 0
收藏该文
已收藏

评论内容:(最多支持255个字符)