JS简单判断是否在微信浏览器打开的方法示例


Posted in Javascript onJanuary 08, 2019

本文实例讲述了JS简单判断是否在微信浏览器打开的方法。分享给大家供大家参考,具体如下:

最近做很多HTML5的项目,很多页面会通过微信微博等SNS分享出去。在分享页面上提供公司APP的下载。但是在很多应用的浏览器中,点击下载链接无法下载应用。那么针对这些浏览器我们需要给用户提示从safari或者系统自带的浏览器打开分享页面。通过js就可以判断当前页面是在什么浏览器打开的。

<script>
    var ua = navigator.userAgent.toLowerCase();
    var isWeixin = ua.indexOf('micromessenger') != -1;
    if (!isWeixin) {
      window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=888"
    }
</script>

只要不是在微信内部打开网页的,就会跳转提示页面,appid必写,可随意写,也可以写已获取的。

还是觉得跳转比较好,防止别人查看自己的代码。

以下是一段示例代码,注释中表明了通过JS如何判断是否在微信浏览器打开,是否在QQ空间浏览器,是否在新浪微博打开。当然可以做得更完善一点,再加上判断是在移动设备打开还是在PC端浏览器打开的,更加细分一点,可以判断是在安卓系统的浏览器打开的还是IOS系统浏览器打开的。

if (browser.versions.mobile) {//判断是否是移动设备打开。browser代码在下面
 var ua = navigator.userAgent.toLowerCase();//获取判断用的对象
 if (ua.match(/MicroMessenger/i) == "micromessenger") {
  //在微信中打开
 }
 if (ua.match(/WeiBo/i) == "weibo") {
  //在新浪微博客户端打开
 }
 if (ua.match(/QQ/i) == "qq") {
  //在QQ空间打开
 }
 if (browser.versions.ios) {
  //是否在IOS浏览器打开
 }
 if(browser.versions.android){
  //是否在安卓浏览器打开
 }
} else {
 //否则就是PC浏览器打开
}

再附上browser的代码,通过以下方法可以判断很多浏览器。包括判断IE浏览器,Opera浏览器,苹果浏览器,谷歌浏览器,火狐浏览器等。

var browser = {
 versions: function () {
 var u = navigator.userAgent, app = navigator.appVersion;
 return {  //移动终端浏览器版本信息
  trident: u.indexOf('Trident') > -1, //IE内核
  presto: u.indexOf('Presto') > -1, //opera内核
  webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
  gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
  mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
  ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
  android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器
  iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
  iPad: u.indexOf('iPad') > -1, //是否iPad
  webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
 };
 }(),
 language: (navigator.browserLanguage || navigator.language).toLowerCase()
}
Javascript 相关文章推荐
一个用js实现的页内搜索代码
May 23 Javascript
十个优秀的Ajax/Javascript实例网站收集
Mar 31 Javascript
JS检测输入字符是否包含非法字符的示例代码
Feb 11 Javascript
js实现简单折叠、展开菜单的方法
Aug 28 Javascript
JS中取二维数组中最大值的方法汇总
Apr 17 Javascript
Angularjs结合Bootstrap制作的一个TODO List
Aug 18 Javascript
Javascript 两种刷新方法以及区别和适用范围
Jan 17 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 jQuery
three.js中3D视野的缩放实现代码
Nov 16 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
Apr 26 Javascript
javascript 对象 与 prototype 原型用法实例分析
Nov 11 Javascript
原生JS实现萤火虫效果
Mar 07 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
Jan 08 #jQuery
Angular6 发送手机验证码按钮倒计时效果实现方法
Jan 08 #Javascript
Angular6 用户自定义标签开发的实现方法
Jan 08 #Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
Jan 08 #Javascript
关于微信小程序登录的那些事
Jan 08 #Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
Jan 08 #Javascript
关于React动态加载路由处理的相关问题
Jan 07 #Javascript
You might like
PHP开发中常用的字符串操作函数
2011/02/08 PHP
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
php远程下载类分享
2016/04/13 PHP
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
图片无缝滚动代码(向左/向下/向上)
2013/04/10 Javascript
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
2015/10/30 Javascript
JavaScript中的对象和原型(一)
2016/08/12 Javascript
jQuery编写网页版2048小游戏
2017/01/06 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
vue中实现左右联动的效果
2018/06/22 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python计算字符宽度的方法
2016/06/14 Python
Python使用正则表达式实现文本替换的方法
2017/04/18 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
2018/08/16 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
成人大专自我鉴定范文
2013/10/19 职场文书
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
地道战观后感400字
2015/06/04 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android