Android开发填坑之自定义User-Agent(UA)

问题现状

我们应用的浏览器组件打开抖音的某个视频播放页(如https://www.iesdouyin.com/share/video/6537198229467958531/),返回的是PC版的页面,效果如下所示
这里写图片描述
在之前的分享中,我有提过页面排版效果的问题几乎是UA的问题,所以第一时间切换UA看看是什么效果先!(如下是切换Android KitKat webview的UA)
这里写图片描述

注:这里的浏览器组件是指对WebView的封装

根本原因

采用对比分析法,发现Android chrome访问目标页时(此时使用的chrome的UA如下)

// Android Android KitKat webview的UA
Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36

通过二分法排查,UA信息中Mobile Safari字串起着关键作用,目标网站用它来判断是否给移动版的页面
我们应用的浏览器组件的UA最主要的问题是把 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36 这类信息给去掉了 !!!

解决方案

为避免以后类型的问题发生,应用的浏览器组件的UA配置策略为默认UA的基础上追加我们由于业务需要扩展的UA信息,即

浏览器组件UA = android webview默认UA + 扩展的UA信息

猜你喜欢

转载自blog.csdn.net/scholar_ii/article/details/80738156