Navigator与UserAgent笔记

  关于Navigator与UserAgent笔记

1.Navigator笔记  

  Navigator对象主要是包含有关客户端浏览器的一些信息,Navigator对象是由JavaScript runtime engine自动创建的,但是目前没有针对于navigator对象的公开标

准,不过目前所有浏览器都支持该对象。

  目前我所接触到的业务都是根据这些属性的不同区分不同的入口,比如要区分是IOS还是Android客户端进行访问的,或者是区分是否是微信访问的等等。

2.UserAgent

  userAgent属性是一个只读的字符串,申明浏览器用于HTPP请求的用户代理头的值,简单点说其实就是通过UserAgent可以取得浏览器类别、版本,客户端操作系统等信息。

  具体展示:

3.我所遇到的业务场景:

/**
     * 获取操作系统类型,
     * 0 Android
     * 1 iOS
     *
     */
    function getOSType() {
        if (/(Android)/i.test(navigator.userAgent)) {
            return 0;
        } else if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
            return 1;
        } else {
            return 2;
        }
    }
//js判断当前环境是否是微信环境
function is_weixin(){
      var ua = navigator.userAgent.toLowerCase();
      if(ua.match(/MicroMessenger/i)=="micromessenger") {
           return true;
     } else {
            return false;
      }
}

 

    /**
     * 注:我遇到的业务场景是将此方法放到拦截器中,在需要区分是否是微信的Controller方法上加此注解
     * @Description: TODO(通过用户版本号判断是否为微信请求,版本号为0则为非微信请求)
     */
    public int isWx(BeatContext beat) {
        int userWeixinVersionCode = 0;

        try {
            String userAgent = beat.getRequest().getHeader("User-Agent");
            if (userAgent == null) {
                log.info("微信拦截器:未获取到User-Agent:" + userAgent);
                userAgent = new String();
            }
            if (userAgent.indexOf("MicroMessenger") >= 0) {
                String weixinVersion = userAgent.substring(userAgent.indexOf("MicroMessenger") + 15);
                weixinVersion = weixinVersion.substring(0, weixinVersion.indexOf("."));
                userWeixinVersionCode = Integer.parseInt(weixinVersion);
            }
            // 将是否微信信息传递至下一页面
            if (userWeixinVersionCode != 0) {
                beat.getModel().add("isWeixin", true);
                beat.getModel().add("userWeixinVersionCode", userWeixinVersionCode);
            } else {
                beat.getModel().add("isWeixin", false);
            }
        } catch (NumberFormatException e) {
            beat.getModel().add("isWeixin", false);
            log.error("用户微信版本信息获取失败", e);
        }
        return userWeixinVersionCode;
    }
}

 

 

 

转载于:https://www.cnblogs.com/boothsun/p/5463468.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值