js如何判断用户是否是用微信浏览器


Posted in Javascript onJune 05, 2014

上周接到个需求,需求是这样的:用户扫一扫二维码会产生一个链接,该链接会向后端发送个请求,返回一个 apk 的下载地址,用户点击下载按钮可以下载此 apk。然后就发生了问题,经过测试,发现用微信扫一扫打开的页面点击下载按钮下载不了 apk,后百度之,原来是微信内置浏览器屏蔽了下载链接,后面和需求方沟通,需求改为如果用户是用微信内置浏览器打开的,则提示用户换一个浏览器打开页面,否则下载不了 apk。那么该如何判断用户是否是用微信浏览器呢?

我们知道 js 可以通过 window.navigator.userAgent 来获取浏览器的相关信息,比如:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36,那么我们也可以通过该方法来获取微信内置浏览器的相关信息:Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11d201 MicroMessenger/5.3。根据关键字 MicroMessenger 来判断是否是微信内置的浏览器。判断函数如下:

function isWeiXin(){ 
var ua = window.navigator.userAgent.toLowerCase(); 
if(ua.match(/MicroMessenger/i) == 'micromessenger'){ 
return true; 
}else{ 
return false; 
} 
}

demo:
<!DOCTYPE HTML> 
<html lang="en"> 
<head> 
<meta charset="utf-8"/> 
<title>判断是否是微信内置浏览器</title> 
</head> 
<body> 
<h1>如果用微信浏览器打开可以看到下面的文字</h1> 
<p></p> 
</body> 
</html> 
<script type="text/javascript"> 
window.onload = function(){ 
if(isWeiXin()){ 
var p = document.getElementsByTagName('p'); 
p[0].innerHTML = window.navigator.userAgent; 
} 
} 
function isWeiXin(){ 
var ua = window.navigator.userAgent.toLowerCase(); 
if(ua.match(/MicroMessenger/i) == 'micromessenger'){ 
return true; 
}else{ 
return false; 
} 
} 
</script>

说明:可以将上面的 demo 放到服务器上,然后生成个二维码扫一扫。
Javascript 相关文章推荐
js猜数字小游戏的简单实现代码
Jul 02 Javascript
浅谈JavaScript函数参数的可修改性问题
Dec 05 Javascript
js实现简单的购物车有图有代码
May 26 Javascript
$(document).ready(function() {})不执行初始化脚本
Jun 19 Javascript
javascript图片延迟加载实现方法及思路
Dec 31 Javascript
JavaScript iframe数据共享接口实现方法
Jan 06 Javascript
jQuery 实现评论等级好评差评特效
May 06 Javascript
HTML Table 空白单元格补全的简单实现
Oct 13 Javascript
vue elementui form表单验证的实现
Nov 11 Javascript
前端路由&amp;webpack基础配置详解
Jun 10 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
Sep 20 Javascript
js实现转动骰子模型
Oct 24 Javascript
如何获取网站icon有哪些可行的方法
Jun 05 #Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
Jun 05 #Javascript
网页右下角弹出窗体实现代码
Jun 05 #Javascript
获取中文字符串的实际长度代码
Jun 05 #Javascript
jQuery文件上传插件Uploadify使用指南
Jun 05 #Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
Jun 05 #Javascript
首页图片漂浮效果示例代码
Jun 05 #Javascript
You might like
PHP实现HTML页面静态化的方法
2015/11/04 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
nodejs基础应用
2017/02/03 NodeJs
Javascript 链式作用域详细介绍
2017/02/23 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
vue在响应头response中获取自定义headers操作
2020/07/24 Javascript
Python实现快速多线程ping的方法
2015/07/15 Python
Python教程之全局变量用法
2016/06/27 Python
Python微信公众号开发平台
2018/01/25 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
Python 实现一个简单的web服务器
2021/01/03 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
寒假思想汇报
2014/01/10 职场文书
校运会广播稿100字
2014/01/27 职场文书
《两只鸟蛋》教学反思
2014/02/10 职场文书
2014年大学生就业规划书
2014/04/04 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
转让协议书范本
2014/09/13 职场文书
业绩倒数第一的检讨书
2014/09/24 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
医生见习报告范文
2014/11/03 职场文书
防震减灾主题班会
2015/08/14 职场文书
合作协议书格式范本
2016/03/21 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS