js如何判断用户是否是用微信浏览器
时间:2024-04-22 12:48:46
上周接到个需求,需求是这样的:用户扫一扫二维码会产生一个链接,该链接会向后端发送个请求,返回一个 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 放到服务器上,然后生成个二维码扫一扫。
标签:微信,浏览器
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python 读取WAV音频文件 画频谱的实例
2021-11-27 02:23:43
![](https://img.aspxhome.com/file/2023/1/87661_0s.jpg)
golang协程与线程区别简要介绍
2024-02-06 10:58:46
![](https://img.aspxhome.com/file/2023/1/105141_0s.png)
Python实现K折交叉验证法的方法步骤
2021-08-04 13:58:25
详解微信小程序缓存--缓存时效性
2024-04-28 10:19:27
bootstrap下拉列表与输入框组结合的样式调整
2024-04-22 13:25:02
![](https://img.aspxhome.com/file/2023/9/135699_0s.png)
Django基础CBV装饰器和中间件的应用示例
2023-09-30 06:17:07
![](https://img.aspxhome.com/file/2023/2/78832_0s.jpg)
Mysql中Join的使用实例详解
2024-01-26 05:04:36
vue实现导航栏下拉菜单
2024-05-09 15:17:56
![](https://img.aspxhome.com/file/2023/2/126482_0s.gif)
python async with和async for的使用
2021-10-16 16:31:02
Microsoft VBScript 运行时错误 错误800a0005 无效的过程调用或参数
2010-03-25 21:51:00
node.js用fs.rename强制重命名或移动文件夹的方法
2024-05-13 10:05:37
Python入门教程(十八)Python的For循环
2021-07-30 04:09:59
解决Jupyter因卸载重装导致的问题修复
2023-09-30 18:22:31
python基础入门之字典和集合
2022-02-21 03:47:19
![](https://img.aspxhome.com/file/2023/4/65144_0s.png)
Python3中小括号()、中括号[]、花括号{}的区别详解
2022-05-31 09:20:36
如何做一个文本书写器?
2010-07-12 18:58:00
自动生成文章摘要的代码[JavaScript 版本]
2024-04-30 09:52:16
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2021-02-23 13:07:23
ASP开发10条经验总结
2007-09-30 13:36:00
bitbucket搭建详细过程记录
2023-08-25 23:52:31
![](https://img.aspxhome.com/file/2023/2/131792_0s.jpg)