需求背景
产品要求开发一个抽奖页,用户只有在微信访问h5页面才有几率触发抽奖,所以需要对用户的访问设备进行辨别。
思路
可获取userAgent(用户代理)来判断
userAgent简介
userAgent 属性是一个只读的字符串,声明了浏览器用于http请求的用户代理头的值。一般来讲,它是在 navigator.appCodeName的值之后加上斜线navigator.appVersion的值组成的。 例如:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)。
代码实现
// 写在了vuex中,方便全局获取
@Mutation
public SET_UA() {
// 获取ua
let UA = navigator.userAgent
let isAndroid = /android|adr|linux/gi.test(UA) // 安卓
let isIOS = /iphone|ipod|ipad/gi.test(UA) && !isAndroid // 苹果
let isBlackBerry = /BlackBerry/i.test(UA) //黑莓
let isMobile = isAndroid || isIOS || isBlackBerry || isWindowPhone // 移动端
let isWX = /MicroMessenger/gi.test(UA) // 微信端
let isWB = /WeiBo/gi.test(UA) // 微博
this.hasPrize = /MicroMessenger/gi.test(UA) || /WeiBo/gi.test(UA)
// 得到一个值为true或者false, i是忽略大小写,或者可以在获取ua后转成小写
}