h5判断被打开的常用客户端来源(支付宝/微信等)

h5通常是由各个客户端或者浏览器打开,但有时候要根据不同客户端展示不同内容,这个时候就需要h5知道是由哪个来源的客户端打开了自己

1.客户端的参数通常写在navigatoruserAgent参数中,这样前端就可以通过获取这个参数了解客户端的信息了

const ua = navigator.userAgent.toLowerCase();

2.然后通过获取到的ua参数与你的白名单参数做匹配,利用正则及testmatch方法来比对

// 微信环境
export const isWx = /MicroMessenger/i.test(ua);
 // 微信另一种方法
if (ua.match(/MicroMessenger/i)) {
   origin = 'wechat_oa';
}
// 支付宝环境
export const isAlipay = /AlipayClient|AliApp\(AP/i.test(ua);

3.或者通过indexOf来判断

// 农行
if (navigator.userAgent.indexOf('Bankabc') > -1) {
	origin = 'abc';
 }
// 支付宝
if (navigator.userAgent.indexOf('AlipayClient') > -1) {
   origin = 'alipay_service';
}

4.若是自家gs软件,通常可通过Cookies获取对应客户端的包名,如:

import Cookies from 'js-cookie';

const vvcPn = Cookies.get('vvc_pn');

// 是否是游戏中心
const isGameCenter = vvcPn === 'com.vivo.game';

5.应用场景:根据来源判断是否展示某项内容,如根据来源判断是否展示头部

 isHidenHeader() {
   return (
      isVivoRelatedApp ||
      isAlipay ||
      isWx ||
      /noheader=true/.test(navigator.userAgent.toLowerCase())
   );
 }

6.应用场景:或根据来源定义对应的来源名传给服务端做相应返回,如:

 const ua = navigator.userAgent.toLowerCase();
   let origin = '';
   // 微信
   if (ua.match(/MicroMessenger/i)) {
      origin = 'wechat_oa';
  }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值