gpt4 book ai didi

android - 在 WebView 中加载 html 数据

转载 作者:行者123 更新时间:2023-11-30 04:32:48 25 4
gpt4 key购买 nike

我正在开发一个示例应用程序,以便能够将简单的 html 数据加载到 webview 中而不会扭曲内容。在我的 Activity 中,我使用 org.apache.http 包连接到网站并在私有(private)方法 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 浏览器上,内容是一样的。但是,当我尝试将此“数据”加载到 web View 中时,我看不到任何类似的东西。

    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);
}

为了能够像在 PC 上的浏览​​器中一样在 webview 中查看,我还需要更改我的代码吗?另一方面,无需经历使用 http 包调用 URL 的艰苦过程,而是使用 webview.loadUrl("http://www.gooogle.com") 从 webview 调用 url 当然,检索搜索巨头页面的移动版本,与 PC 浏览器版本有很大不同。

简而言之,在我的 native 自定义代码中处理 http 调用后,我想在我的 webview 中看到我在 PC 浏览器上看到的内容。

此外,如果有人可以提供一些有关处理 url 重定向的指示,那将会很有帮助。

最佳答案

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

  browserSettings.setUserAgentString("Mozilla/5.0");

关于android - 在 WebView 中加载 html 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7397838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com