在開發(fā)時我們可能遇到這樣一個問題:如何使WebView打開網(wǎng)頁時以平板或者電腦模式打開,而不是以手機(jī)模式。其實(shí)WebView已經(jīng)提供了方法,那就是設(shè)置WebView的User Agent。
關(guān)于User Agent
UA對于網(wǎng)站開發(fā)人員來說很熟悉,我們經(jīng)常在HTTP請求的請求頭中可以看到User-Agent這一字段。維基百科里是這樣定義的:
在計(jì)算機(jī)科學(xué)中,User Agent(用戶代理)指的是代表用戶行為的軟件所提供的對自己的一個標(biāo)識符。
簡單來說,UA是一個特定的字符串,它通常包含了發(fā)送請求端的應(yīng)用程序類型、操作系統(tǒng)、軟件供應(yīng)商以及軟件的修訂版本等信息。格式通常是:
Mozilla/[version]([system and browser information])[platform]([platform details])[extensions]
例如,我的iPad的Safari使用的UA是:
Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53
我的電腦的Google瀏覽器的UA是:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
我的手機(jī)的瀏覽器的UA是:
Mozilla/5.0 (Linux; Android 5.1; MZ-m1 metal Build/LMY47I) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0
動態(tài)設(shè)置UA
WebView的UA設(shè)置是通過WebSettings來設(shè)置的:

可以看到官方的說明:從4.4開始如果在網(wǎng)頁加載中改變UA的話會使W重新加載,而在4.4之前則不會。
當(dāng)然,如果想獲取WebView的當(dāng)前UA,也可以通過WebSettings來獲?。?/p>

UA的切換比較簡單,就不貼代碼了。主要是做下備忘并希望能幫助到一些不了解這塊知識的童鞋。
最后,在實(shí)際使用中,我們可以通過設(shè)置不同的UA來獲取到不同的網(wǎng)頁數(shù)據(jù),比如對于大部分視頻網(wǎng)站,使用電腦的UA,播放器會加載成flash播放流,而如果我們將UA設(shè)置為ipad,則會加載成HTMH5的video標(biāo)簽,返回的是們m3u8或mp4地址。flash播放需要加載flash插件,而m3u8或mp4則直接可以使用系統(tǒng)播放器進(jìn)行播放,這樣的話,就有點(diǎn)意思了,嘿嘿~
如果你覺得有用的話,記得點(diǎn)喜歡哦!