1. 程式人生 > >修改安卓UA(User Agent)

修改安卓UA(User Agent)

修改安卓內建瀏覽器的UA(User Agent),即使用者代理

需求是:讓H5那邊需要區分是PC、安卓APP、iOSAPP、安卓微信瀏覽器、iOS微信瀏覽器訪問的。UA裡面包括底層系統,手機型號,手機系統版本號等等資訊

  • 1,首先我們來列印一下UA:
WebSettings settings = webView.getSettings();
settings.getUserAgentString();

手機列印:Mozilla/5.0 (Linux; Android 7.1.1; Mi Note 3 Build/NMF26X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.98 Mobile Safari/537.36

  • 2,直接修改UA:
WebSettings settings = webView.getSettings();
settings.setUserAgentString("Name/ZaiBuZai");

全部修改,打印出來的UA是這樣的:ZaiBuZai
它的原來用webview載入H5時,載入H5頁面沒問題,不過H5中的JS呼叫本地方法時就會出錯,如下圖。原因,應該是我們將原來UA中包含的手機資訊都改掉了,通過JS找不到相應方法,跳轉地地址又不是以”http”,”https”開頭的url,就報網頁無法開啟。
這裡寫圖片描述

  • 3,正確修改UA的姿勢,新增些欄位上去,這樣載入和JS的呼叫本地方法都沒影響
WebSettings settings = webView.getSettings();
settings.setUserAgentString(settings.getUserAgentString()+" Name/ZaiBuZai");

最終打印出來的:Mozilla/5.0 (Linux; Android 7.1.1; Mi Note 3 Build/NMF26X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.98 Mobile Safari/537.36 Name/ZaiBuZai