2011-04-07 96 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