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

 更新时间:2014年06月05日 17:13:34   作者:  
微信内置浏览器屏蔽了下载链接,如果用户是用微信内置浏览器打开的,则提示用户换一个浏览器打开页面,那么该如何判断用户是否是用微信浏览器呢
上周接到个需求,需求是这样的:用户扫一扫二维码会产生一个链接,该链接会向后端发送个请求,返回一个 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 放到服务器上,然后生成个二维码扫一扫。

相关文章

  • chrome监听cookie变化与赋值问题

    chrome监听cookie变化与赋值问题

    这篇文章主要介绍了chrome监听cookie变化与赋值问题,cookie监听与赋值操作需要manifest文件里声明权限问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • javascript 二进制运算技巧解析

    javascript 二进制运算技巧解析

    javascript 中的二进制运算的一些技巧,晒出来和你们分享一下,希望可以帮助你们
    2012-11-11
  • 基于Bootstrap实现图片轮播效果

    基于Bootstrap实现图片轮播效果

    这篇文章主要为大家详细介绍了基于bootstrap实现图片轮播效果的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下
    2016-05-05
  • JavaScript中的LHS和RHS分析详情

    JavaScript中的LHS和RHS分析详情

    这篇文章主要介绍了JavaScript中的LHS和RHS分析详情,​LHS​​是赋值操作即可以看做是在往内存中存储值,而​​RHS​​是取值操作,它是从内存中进行检索,下文更多相关资料介绍需要的小伙伴可以参考一下
    2022-04-04
  • JS动态更改div高度实现代码例子

    JS动态更改div高度实现代码例子

    在Web开发中通过使用JavaScript可以动态地修改HTML元素的属性和样式,下面这篇文章主要给大家介绍了关于JS动态更改div高度实现的相关资料,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-11-11
  • javascript实现根据iphone屏幕方向调用不同样式表的方法

    javascript实现根据iphone屏幕方向调用不同样式表的方法

    这篇文章主要介绍了javascript实现根据iphone屏幕方向调用不同样式表的方法,涉及javascript针对样式表动态操作的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-07-07
  • javascript加号"+"的二义性说明

    javascript加号"+"的二义性说明

    单个的加号作为运算符在 JavaScript 中有三种作用。
    2013-03-03
  • JavaScript队列的应用实例详解【经典数据结构】

    JavaScript队列的应用实例详解【经典数据结构】

    这篇文章主要介绍了JavaScript队列的应用,简单讲述了队列的概念并结合实例形式分析了基于javascript队列排队问题解决方法,需要的朋友可以参考下
    2017-04-04
  • JavaScript常用脚本汇总(三)

    JavaScript常用脚本汇总(三)

    本文给大家分享的常用脚本有通过数组,拓展字符串拼接容易导致性能的问题、页面 视口 滚动条的位置的辅助函数、调节元素透明度的函数、获取鼠标位置的几个通用的函数、使用cssdisplay属性来切换元素可见性的一组函数、样式相关的通用函数、获取元素当前的高度和宽度。
    2015-03-03
  • echarts地图绘制自定义标记实现方法

    echarts地图绘制自定义标记实现方法

    这篇文章主要给大家介绍了关于echarts地图绘制自定义标记实现的相关资料,ECharts地图是一个功能强大的数据可视化工具,基于百度ECharts开源项目开发而成,它主要用于在网页中展示各种地理数据和地图的信息,需要的朋友可以参考下
    2023-11-11

最新评论