2011-04-07 95 views
42

我正在使用WebView来显示HTML内容的Android中编写应用程序。我被告知为我的应用获得一个Android用户代理 - 我该怎么做?我从我的应用以及Android浏览器打开了http://whatsmyuseragent.com - 两个用户代理都是相同的。android用户代理

请帮忙!

回答

10

您目前无法为WebView设置用户代理。

更新 - 我站好了!

WebSettings有一个叫setUserAgentString方法:

webView.getSettings().setUserAgentString("my-user-agent"); 
+0

经过一番研究,我发现有一种方法可以更改WebView的用户代理。使用webview.getSettings()。setUserAgentString(); – 2011-04-08 03:31:08

+0

其实,用户代理字符串比上面提到的有点复杂:)使用http://whatsmyuseragent.com/找到你的使用者 – 2011-04-09 05:08:34

0

如果您想在独立的浏览器应用程序(而不是应用程序中嵌入的WebView),您可以通过键入操纵用户代理值“与自定义的User-Agent进行实验about:useragent“放入浏览器的URL字段(不带引号”“),然后加载页面。

您将看到一个带有单选按钮的对话框来模拟Iphone,桌面,Lismore,Nexus One,Galaxy S或甚至自定义用户代理编辑框。

根据需要选择/编辑后,点击确定,即可设置。

干杯!

3

您可以使用System.getProperty("http.agent")来获取默认设备UA。而webView.getSettings().getUserAgentString();会给你的UA。请注意,我们可以通过编程方式设置UA。所以它可能不是所有情况下的默认设备UA。

System.getProperty("http.agent")是获得UA的更好方法,可以在WebView的实例可用之前检索。

+0

问题是关于如何获取应用程序的用户代理......为什么你会得到系统用户代理? – 2014-04-17 14:07:45

+0

webview的默认UA是系统UA。但是webview的UA可以手动设置(以编程方式)。所以如果你改变了你的webview的UA,它可能会给你不同的UA。所以它渴望得到系统UA。 – Sripathi 2014-04-18 14:33:27

+0

是的,我知道但我想要一个自定义的UA。 – 2014-04-18 14:44:27

4

将这个在显示的WebView该活动的Java类的onCreate方法:

WebView myWebView = (WebView)findViewById(R.id.webview); 
//get the UA of the current running device: 
String userAgent = view.getSettings().getUserAgentString() ; 
//set the UA of the webview to this value: 
myWebView.getSettings().setUserAgentString(userAgent); 

不要应该使用System.getProperty( “http.agent”) - 这将返回'Dalvik'用户代理(Dalvik是个别Android应用运行的虚拟机)

+0

String userAgent = view.getSettings()。getUserAgentString();这里的观点是什么? – 2016-06-20 06:51:02

+0

@SudiptaforAndroid这是一个WebView实例。 – 2017-01-30 08:23:55