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 相关文章推荐
javascript 写类方式之五
Jul 05 Javascript
Javascript学习笔记5 类和对象
Jan 11 Javascript
jQuery的实现原理的模拟代码 -5 Ajax
Aug 07 Javascript
javascript实现完美拖拽效果
May 06 Javascript
Angularjs---项目搭建图文教程
Jul 08 Javascript
关于Javascript中defer和async的区别总结
Sep 20 Javascript
Angular2 多级注入器详解及实例
Oct 30 Javascript
快速实现jQuery多级菜单效果
Feb 01 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
Feb 12 Javascript
axios的拦截请求与响应方法
Aug 11 Javascript
深入理解Vue router的部分高级用法
Aug 15 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
Nov 27 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
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
2013/05/08 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
php中引用符号(&amp;)的使用详细介绍
2016/12/06 PHP
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
2017/02/15 Javascript
原生JS实现图片懒加载(lazyload)实例
2017/06/13 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
浅谈angular.copy() 深拷贝
2017/09/14 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
在python中安装basemap的教程
2018/09/20 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
使用python实现多维数据降维操作
2020/02/24 Python
Django与pyecharts结合的实例代码
2020/05/13 Python
详解Python高阶函数
2020/08/15 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
用canvas显示验证码的实现
2020/04/10 HTML / CSS
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
某公司C#程序员面试题笔试题
2014/05/26 面试题
英语自荐信常用语句
2013/12/13 职场文书
大学生饮食配送创业计划书
2014/01/04 职场文书
航空学院求职信
2014/06/11 职场文书
诉讼授权委托书
2014/10/15 职场文书
2014年党总支工作总结
2014/12/18 职场文书
工人先进事迹材料
2014/12/26 职场文书
2015年党建工作总结
2015/03/30 职场文书