解决移动端开发判断当前环境是ios、安卓android还是微信浏览器

你说的曾经没有我的故事 提交于 2019-12-27 00:44:54

一、需求问题

在移动端开发中,我们有的时候需要判断当前的环境,是苹果ios环境、还是安卓android环境,还是微信浏览器环境。

二、需求分析

判断当前环境是iosandroid还是微信,我们可以从两个值进行判断。第一个参数值是userAgentwindow.navigator.userAgent,用户代理,使得服务器能够识别客户使用的操作系统及版本、CPU类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等等。第二个参数值是appVersionwindow.navigator.appVersion,可以返回浏览器的平台和版本信息。通过这两个参数值,我们就可以判断出当前的环境。

三、需求实现

1. 移动端简单判断代码实现:

let ua = window.navigator.userAgent,
   app = window.navigator.appVersion;
   alert('浏览器版本: ' + app + '\n' + '用户代理: ' + ua);
   if(!!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)){
       // ios端 
       console.log('ios端');
   }
   else if(ua.indexOf('Android') > -1 || ua.indexOf('Adr') > -1) {
       // android端 
       console.log('android端');
   }
   if (ua.match(/MicroMessenger/i) == 'MicroMessenger') {
       // 微信浏览器 
       console.log('微信浏览器');
   }

2. 移动端详细判断代码实现:

 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('这不是微信浏览器');
        }
    }

3. PC端与移动端的判断:

if (/(iPhone|iPad|iPod|iOS|Android)/i.test(navigator.userAgent)) { 
    //移动端
     console.log("这是移动端");
}else{
    //pc端
     console.log("这是pc端");
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!