如何在webview中加载桌面视图而不是移动视图

时间:2014-03-01 18:06:50

标签: android webview

设计一个Android网络应用程序,当我在模拟器上运行桌面版本显示,但当我在我的Android设备上运行移动视图而不是加载。我想要的是在我的设备上加载桌面视图

1 个答案:

答案 0 :(得分:2)

服务器使用HTTP请求中的User-Agent标头来确定设备是移动设备还是桌面设备。您可以使用修改后的User-Agent标题请求网站,以便服务器将其视为桌面设备。

Andorid代码:

Map<String, String> headers = new Map<String, String>();
headers.put("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0");
loadUrl("www.google.com",  headers);

欲了解更多信息: http://developer.android.com/reference/android/webkit/WebView.html#loadUrl(java.lang.String, java.util.Map)

http://en.wikipedia.org/wiki/Mobile_device_detection

以获取可用的User-Agent字符串列表: http://www.useragentstring.com/Firefox25.0_id_19710.php

修改

再看一下WebView文档,我在loadUrl函数的描述中找到了这个:

  

请注意,如果此地图包含由其设置的任何标头   此WebView默认,例如控制缓存,接受   类型或User-Agent,它们的值可以由此覆盖   WebView的默认值。

这意味着,你不能以我上面写的方式覆盖User-Agent。在互联网上搜索了一下后,我发现了这个:setUserAgentString in Android webview has no effect on HTTP header used in loadURL()

并想出了这段代码:

webview.getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0");
webview.loadUrl("www.google.co.il");

请尝试并检查是否能解决您的问题。