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;
    }
}

 

时间: 2024-10-21 00:59:58

Navigator与UserAgent笔记的相关文章

Javascript进阶篇——浏览器对象—Location、Navigator、userAgent、screen对象

Location对象location用于获取或设置窗体的URL,并且可以用于解析URL.语法: location.[属性|方法] location对象属性图示: location 对象属性: location 对象方法: 获取当前显示文档的URL,并输出: 1 <script type="text/javascript"> 2 var a = location.href; 3 document.write(a); 4 </script> Navigator对象

Navigator对象/userAgent

Navigator对象 Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本. 对象属性: 查看浏览器的名称和版本,代码如下: <script type="text/javascript"> var browser=navigator.appName; var b_version=navigator.appVersion; document.write("Browser name"+browser); document.wri

JavaScript中的navigator对象学习笔记

var browser=navigator.appNamevar b_version=navigator.appVersionvar version=parseFloat(b_version)document.write("浏览器名称:"+ browser)document.write("<br />")document.write("浏览器版本:"+ version) document.write("<p>指定

javascript学习笔记2

其实接触js已经不是一天两天了,但是没有系统的学习过,或者说系统学习的时候没有好好学习,这次想要把js好好的学习一下,可是后来发现它不是很好学,要学的东西非常的多,不过我相信我可以把它学好,现在研究的都是基础的内容,我把学习过程中学到的全部都记录下来,以备后面忘了的时候可以回来查看,下面进入正题: 今天学到的内容如下: 我们先来了解一下javascript的结构: 一个完整的javascript结构由以下三个部分构成: 1.核心 2.文档对象模型(DOM,document object mode

Js之Navigator对象

Window对象的navigator属性引用的是包含浏览器厂商和版本信息的Navigator对象.Navigator对象的命名是为了纪念Netscape之后NavigatorBU览器译注2,不过所有其他的浏览器也支持它(IE还支持clientln formation属性,它作为navigator的厂商中立同义词.遗憾的是,其他浏览器并不支持这一更直观的属性命名).过去,Navigator对象通常被脚本用来确定它们是在IE中还是在Netscape中运行.这种浏览器嗅探方法有问题,因为它要求随着新浏

关于浏览器类型和版本号的思考

很多时候,我们需要根据浏览器版本做这样或者那样的事情,这里主要包括JS层的和CSS样式层面上. CSS层面上的话,这里我就不比多说了主要是因为浏览器对CSS样式标准支持的程度不一样导致的,最多见的就是IE系的:JS层面的话是浏览器在最初标准不统一是出现的各种问题,形成了当前的各种令人头疼的问题,即使是同一种浏览器在不同的版本号下可能也会存在各种的问题,这个时候处理浏览器的兼容性就至关重要了,那我们就需要能够分清楚用户当前使用的是什么样的浏览器,该做什么样的事情.这个的话可以多学习一下类似jque

js的重要知识点

一.事件 1-261.onmousedown定义:onmousedown事件会在鼠标按键被按下时发生 2.onmouseup定义:onmouseup事件会在鼠标按键被松开时发生 3.onmousemove定义:onmousemove事件会在鼠标指针移动时发生支持该事件的js对象:document但是onmousemove默认情况下没有任何对象的一个事件:因为鼠标移动频繁发生. 4.onmouseover定义:onmouseover事件会在鼠标指针移动到指定的对象上时发生 5.onmouseout

使用ActionFilterAttribute 记录 WebApi Action 请求和返回结果记录

在asp.net mvc 中 webapi 和 mvc 处理消息是两个不同的管道,Asp.net mvc 和 webapi 为我们提供的 ActionFilterAttribute 拦截器,通过 重写 OnActionExecutingAsync,来 拦截action的请求消息,当执行OnActionExecutingAsync完成以后才真正进入请求的action中,action运行完后又把控制权给了 OnActionExecutedAsync ,这个管道机制可以使我们用它来轻松实现 权限认证.

JS总览

实际上,一个完整的JavaScript实现是由以下3个不同部分组成的:核心ECMAScript.浏览器对象模型BOM.文档对象模型DOM. 一.核心的ECMAScript ECMAScript可以为不同各类的宿主环境提供核心的脚本编程能力,因此核心的脚本语言是与任何特定的宿主环境分开进行规定的.Web浏览器对于ECMAScript来说就是一个宿主环境,但它并不是唯一的宿主环境.在ECMAScript描述了以下的内容:语法.变量.关键字.保留字.原始值和引用值.原始类型和引用类型.类型转换.运算符