最近在开发APP过程中,需要打包上线APP。为了用户体验好,我们新增了一个静态下载页面。用户扫描二维码进入到我们的下载页面,但是很多情况是推送给客户,客户可能会在微信或者QQ中打开我们的下载页面,点击下载按钮时无法实现下载我们的APP,所以需要对用户打开下载页面进行判断,下面就是我们需要的判断代码:

js 判断手机是微信或者QQ打开方法

var ua = navigator.userAgent.toLowerCase();//获取判断用的对象
if (ua.match(/MicroMessenger/i) == "micromessenger") {
	//在微信中打开
}
if (ua.match(/WeiBo/i) == "weibo") {
	//在新浪微博客户端打开
}
if (ua.match(/QQ/i) == "qq") {
	//在QQ空间打开
}
if (browser.versions.ios) {
	//是否在IOS浏览器打开
} 
if(browser.versions.android){
	//是否在安卓浏览器打开
}

再附判断IE浏览器,Opera浏览器,苹果浏览器,谷歌浏览器,火狐浏览器等方法:

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.*/), //是否为移动终端
            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 , //是否为iPhone或者QQHD浏览器
            iPad: u.indexOf('iPad') > -1, //是否iPad
            webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部
            weixin: u.indexOf('MicroMessenger') > -1, //是否微信
            qq: u.match(/\sQQ/i) == " qq" //是否QQ
        };
    }(),
    language:(navigator.browserLanguage || navigator.language).toLowerCase()
}

如何使用:

//判断是否IE内核
if(browser.versions.trident){ alert("is IE"); }
//判断是否webKit内核
if(browser.versions.webKit){ alert("is webKit"); }
//判断是否移动端
if(browser.versions.mobile||browser.versions.android||browser.versions.ios){ alert("移动端"); }

上面这些就是手机端的一些常用判断,接下来再给大家分享下PC浏览器的一些判断。现在很多网站已经不兼容IE6,用户如果用IE6浏览网页的话,会提示浏览器升级等信息。或者判断是手机用户还是电脑用户,手机用户调整至手机网站,电脑用户之间跳转至电脑网页等等这些判断。

我们先在自己的电脑上运行如下代码看看结果:

var x = navigator;
document.write("CodeName=" + x.appCodeName);
document.write("<br />");
document.write("MinorVersion=" + x.appMinorVersion);
document.write("<br />");
document.write("Name=" + x.appName);
document.write("<br />");
document.write("Version=" + x.appVersion);
document.write("<br />");
document.write("CookieEnabled=" + x.cookieEnabled);
document.write("<br />");
document.write("CPUClass=" + x.cpuClass);
document.write("<br />");
document.write("OnLine=" + x.onLine);
document.write("<br />");
document.write("Platform=" + x.platform);
document.write("<br />");
document.write("UA=" + x.userAgent);
document.write("<br />");
document.write("BrowserLanguage=" + x.browserLanguage);
document.write("<br />");
document.write("SystemLanguage=" + x.systemLanguage);
document.write("<br />");
document.write("UserLanguage=" + x.userLanguage);

博主的运行结果如下:

CodeName=Mozilla
MinorVersion=undefined
Name=Netscape
Version=5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
CookieEnabled=true
CPUClass=undefined
OnLine=true
Platform=Win32
UA=Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
BrowserLanguage=undefined
SystemLanguage=undefined
UserLanguage=undefined

根据上面的navigator属性,我们可以来判断浏览器版本了,下面我们来做一个例子:

页面在IE7以下,提示浏览器升级,其他浏览器正常浏览。

代码如下:

if(window.ActiveXObject){
	var browser=navigator.appName 
	var b_version=navigator.appVersion 
	var version=b_version.split(";"); 
	var trim_Version=version[1].replace(/[ ]/g,""); 
	if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE6.0"  || trim_Version=="MSIE7.0" ) { 
		$(".ie7andie6").show();
		$(".contentnone").hide();
	} 
}

html提示代码如下:

<div class="contentnone" style="margin-top:30px;text-align: center;font-size:18px;">亲,我在IE8以上可以正常浏览哦!</div>
   <div class="ie7andie6 mod-main" style="display:none;">
    <div class=tip>
      <p>您使用的浏览器版本较低,建议您换用下面这些浏览器试试吧。</p>
    </div>
    <ul class="clr mod-browsers">
        <li><A class=chrome href="http://www.google.cn/intl/zh-CN/chrome/" target=_blank>Chrome</A> </li>
        <li><A class=ie href="http://windows.microsoft.com/zh-cn/internet-explorer/ie-10-worldwide-languages" target=_blank>IE10</A> </li>
        <li><A class=ff href="http://firefox.com.cn/" target=_blank>Firefox</A> </li>
    </ul>
    <div class=switch-pic></div>
</div>

这样IE8及其别的版本就可以正常访问了!

js判断是手机端用户还是PC端用户

var a=navigator.userAgent;
if(a.indexOf("Android")!=-1 || a.indexOf("iPhone")!=-1 || a.indexOf("iPad")!=-1 ){
    //跳转到手机网站
}