zoukankan      html  css  js  c++  java
  • h5页面如何判断是系统Android,ios还是微信等

    通过ua来判断内核:

    移动端判断简易版:

    let ua = navigator.userAgent;
    let isAndroid = /android/i.test(ua);
    let isIOS = /(iPhone|iPad|iPod|IOS)/i.test(ua);
    let isWechat = /microMessenger/i.test(ua);

     

    如何通过ua区分QQ内置浏览器与QQ浏览器:

    • 在Android上

    QQ内置环境的ua中有关键字 MQQBrowser, 并且后面有一个QQ字符,QQ浏览器则没有。
    因此在Android上区分,需要用正则判断ua中包含MQQBrowser并且之后包含QQ,则是QQ内置浏览器,ua中包含MQQBrowser但是不包含QQ则是QQ浏览器

    • 在ios上

    QQ内置浏览器的ua包含一个空格加QQ,但是不包含MQQBrowser
    QQ浏览器ua包含MQQBrowser但是不包含单独的QQ

    const isIosQQ = (isIos && / QQ/i.test(navigator.userAgent));
    const isAndroidQQ = (isAndroid && /MQQBrowser/i.test(navigator.userAgent) && /QQ/i.test((navigator.userAgent).split('MQQBrowser')));

    移动端判断详细版:

    var browser = {
      versions: function() {
        var u = navigator.userAgent, app = navigator.appVersion;
        return {
          trident: u.indexOf('Trident') > -1, //IE内核
          presto: u.indexOf('Presto') > -1, //opera内核
          webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
          gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
          mobile: !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/), //是否为移动终端
          ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
          android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
          iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器
          iPad: u.indexOf('iPad') > -1, //是否iPad
          webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
        };
      }(),
      language: (navigator.browserLanguage || navigator.language).toLowerCase()
    }
    
    
    if (browser.versions.ios || browser.versions.iPhone || browser.versions.iPad) {
     //如果是ios系统就执行
     console.log('这是ios系统');
    }
    else if (browser.versions.android) {
      //如果是android系统就执行
      console.log('这是android系统');
    }
    
    var ua = navigator.userAgent.toLowerCase();
    if(ua.match(/MicroMessenger/i)=="micromessenger") {
       console.log('这是微信浏览器')
    } else {
      console.log('这不是微信浏览器');
    }

    判断是移动端还是PC端:

    if (/(iPhone|iPad|iPod|iOS|Android)/i.test(navigator.userAgent)) { 
        //移动端
         console.log("这是移动端");
    }else{
        //pc端
         console.log("这是pc端");
    }
  • 相关阅读:
    【转】ASP.NET配置文件详解
    asp.net 使用application实现单点登录(一个账号只能在一个地方登录)
    转:gridview获取当前行索引的方法
    awk中调用shell的自定义函数
    不想做操作工就把你的心静下来
    nagios通过脚本对系统进行定制监控
    关于一个sql执行时间而引发的讨论
    网站前端服务器高可用方案
    NFS在Centos 6.3下的安装
    关于perl中中文乱码的解决办法
  • 原文地址:https://www.cnblogs.com/art-poet/p/14334889.html
Copyright © 2011-2022 走看看