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 相关文章推荐
JavaScript 垃圾回收机制分析
Oct 10 Javascript
jQuery实现公告文字左右滚动的实例代码
Oct 29 Javascript
文档对象模型DOM通俗讲解
Nov 01 Javascript
JavaScript动态添加style节点的方法
Jun 09 Javascript
javaScript中Math()函数注意事项
Jun 18 Javascript
javascript获取网页各种高宽及位置的方法总结
Jul 27 Javascript
JS碰撞运动实现方法详解
Dec 15 Javascript
详解Vue自定义过滤器的实现
Jan 10 Javascript
详解vue跨组件通信的几种方法
Jun 15 Javascript
vue侧边栏动态生成下级菜单的方法
Sep 07 Javascript
利用JavaScript的Map提升性能的方法详解
Aug 14 Javascript
Vue Elenent实现表格相同数据列合并
Nov 30 Vue.js
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发送与接收流文件的方法
2015/02/11 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
php统计数组不同元素的个数的实例方法
2019/09/26 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
2020/07/24 PHP
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
JavaScript判断textarea值是否为空并给出相应提示
2014/09/04 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
ES6下子组件调用父组件的方法(推荐)
2018/02/23 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
js实现简单扫雷
2020/11/27 Javascript
Python 绘图和可视化详细介绍
2017/02/11 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
2017/03/11 Python
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
python切片的步进、添加、连接简单操作示例
2019/07/11 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
tensorflow 模型权重导出实例
2020/01/24 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
大学生最常用的自我评价
2013/12/07 职场文书
区域销售经理职责
2013/12/22 职场文书
网络教育自我鉴定
2014/02/04 职场文书
小学生作文评语大全
2014/04/21 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
博士给导师的自荐信
2015/03/06 职场文书
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server