JavaScript判断微信浏览器实例代码


Posted in Javascript onJune 13, 2016

先给大家说下我的项目需求:用户扫一扫二维码会产生一个链接,该链接会向后端发送个请求,返回一个 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判断微信浏览器实例代码的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
模仿JQuery.extend函数扩展自己对象的js代码
Dec 09 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
Apr 16 Javascript
Javascript玩转继承(二)
May 08 Javascript
js读写json文件实例代码
Oct 21 Javascript
JQuery简单实现锚点链接的平滑滚动
May 03 Javascript
js显示文本框提示文字的方法
May 07 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
Jul 27 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
Dec 08 Javascript
angular基于ng-alain定义自己的select组件示例
Feb 23 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
Mar 20 Javascript
react项目实践之webpack-dev-serve
Sep 14 Javascript
validform表单验证的实现方法
Mar 08 Javascript
JavaScript判断是否是微信浏览器
Jun 13 #Javascript
JavaScript_object基础入门(必看篇)
Jun 13 #Javascript
js 连续赋值的简单实现
Jun 13 #Javascript
全面解析Bootstrap中Carousel轮播的使用方法
Jun 13 #Javascript
全面解析Bootstrap中tooltip、popover的使用方法
Jun 13 #Javascript
JavaScript遍历求解数独问题的主要思路小结
Jun 12 #Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
Jun 12 #Javascript
You might like
php 正则表达式小结
2009/08/31 PHP
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
PHP中文件缓存转内存缓存的方法
2011/12/06 PHP
PHP递归算法的详细示例分析
2013/02/19 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
详谈Angular路由与Nodejs路由的区别
2017/03/05 NodeJs
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
2018/09/17 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
2019/02/27 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
Node.js API详解之 vm模块用法实例分析
2020/05/27 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
2020/11/03 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
[01:01:43]EG vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
2019/07/12 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
浅析Python 序列化与反序列化
2020/08/05 Python
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
机械个人求职信范文
2014/01/24 职场文书
培训班主持词
2014/03/28 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python
python自动化调用百度api解决验证码
2021/04/13 Python
Python pandas求方差和标准差的方法实例
2021/08/04 Python
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS