uc浏览器的navigator.userAgent

本文揭示了UC浏览器不同版本返回的navigator.userAgent导致的路径问题。通过分析,发现极速版UA不包含'ucbrowser',引发路径undefined。核心在于版本差异与判断逻辑的对应问题。
摘要由CSDN通过智能技术生成

1.uc极速版浏览器和uc浏览器navigator.userAgent的输出结果会有所不同

在解决线上bug的时候,发现请求的路径URL的部分字段是根据navigator.userAgent的结果来决定的。

const isAndroid = () => {
    const u = navigator.userAgent
    return u.indexOf('Android') > -1 || u.indexOf('Linux') > -1
}
const ua = navigator.userAgent.toLowerCase();
let platform = '';
if (ua.indexOf('ucbrowser') > 0) {
     platform=isAndroid()?4:3;
} 
const pathPrefix = {
     3: 'ucios',
     4: 'ucan',
}
return axios.post({
	url: `/${pathPrefix[platform]}/.....'
})

最后出现路径中出现了undefined
思考:

  • 产生bug的原因一定是platform的值的问题导致的。
  • 猜想是可能出现获取不到ua的情况-----》尝试之后,不是
  • 分析用户返回的数据:发现导致bug的因素有:客户端的版本号
  • 从版本号入手,下载尝试----》最终发现是极速版uc浏览器返回的navigator.userAgent不一样,导致在进行判断的时候,找不到ucbrowser,所以platform的值是空串,导致路径出现undefined。

产生bug的原因:不同版本的uc浏览器返回的navigator.userAgent不一样,导致在进行判断的时候,找不到ucbrowser,所以platform的值是空串,导致路径出现undefined。
最后发现:同一浏览器输出的ua有可能也会有所不同,如图(V13.8.5.1147)
在这里插入图片描述
在这里插入图片描述
最新浏览器的输出的ua,如图(v15.0.3.1193)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值