·您当前的位置:首页 > 技术教程 > JavaScript >

[js]用js来判断用户终端是不是微信的方法

时间:2017-06-21 09:09酷播
上周接到个需求,需求是这样的:用户扫一扫二维码会产生一个链接,该链接会向后端发送个请求,返回一个 apk 的下载地址,用户点击下载按钮可以下载此 apk

上周接到个需求,需求是这样的:用户扫一扫二维码会产生一个链接,该链接会向后端发送个请求,返回一个 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 来判断是否是微信内置的浏览器。判断函数如下:

  1. function isWeiXin(){ 
  2. var ua = window.navigator.userAgent.toLowerCase(); 
  3. if(ua.match(/MicroMessenger/i) == 'micromessenger'){ 
  4. return true; 
  5. }else{ 
  6. return false; 
  7. }  

 

  1. <!DOCTYPE HTML> 
  2. <html lang="en"> 
  3. <head> 
  4. <meta charset="utf-8"/> 
  5. <title>判断是否是微信内置浏览器</title> 
  6. </head> 
  7. <body> 
  8. <h1>如果用微信浏览器打开可以看到下面的文字</h1> 
  9. <p></p> 
  10. </body> 
  11. </html> 
  12. <script type="text/javascript"> 
  13. window.onload = function(){ 
  14. if(isWeiXin()){ 
  15. var p = document.getElementsByTagName('p'); 
  16. p[0].innerHTML = window.navigator.userAgent; 
  17. function isWeiXin(){ 
  18. var ua = window.navigator.userAgent.toLowerCase(); 
  19. if(ua.match(/MicroMessenger/i) == 'micromessenger'){ 
  20. return true; 
  21. }else{ 
  22. return false; 
  23. </script>  

说明:可以将上面的 demo 放到服务器上,然后生成个二维码扫一扫。来源http://www.jb51.net/article/50708.htm

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器