设计一个Android网络应用程序,当我在模拟器上运行桌面版本显示,但当我在我的Android设备上运行移动视图而不是加载。我想要的是在我的设备上加载桌面视图
答案 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://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");
请尝试并检查是否能解决您的问题。