JS判断是否在微信浏览器打开的简单实例(推荐)


Posted in Javascript onAugust 24, 2016

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

以下是一段示例代码,注释中表明了通过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()
}

以上这篇JS判断是否在微信浏览器打开的简单实例(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
客户端静态页面玩分页
Jun 26 Javascript
JavaScript 函数式编程的原理
Oct 16 Javascript
清除div下面的所有标签的方法
Feb 17 Javascript
jQuery插件StickUp实现网页导航置顶
Apr 12 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
Nov 18 Javascript
javascript HTML5文件上传FileReader API
Mar 27 Javascript
jQuery实现的放大镜效果示例
Sep 13 Javascript
bootstrap datepicker限定可选时间范围实现方法
Sep 28 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
Dec 19 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
Jan 12 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
Feb 15 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
May 17 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
Aug 24 #Javascript
AngularJS下对数组的对比分析
Aug 24 #Javascript
AngularJS  $modal弹出框实例代码
Aug 24 #Javascript
AngularJS中比较两个数组是否相同
Aug 24 #Javascript
javascript深拷贝(deepClone)详解
Aug 24 #Javascript
js实现无缝循环滚动
Jun 23 #Javascript
jquery实现网页定位导航
Aug 23 #Javascript
You might like
PHP中GET变量的使用
2006/10/09 PHP
探讨:php中在foreach中使用foreach ($arr as &$value) 这种类型的解释
2013/06/24 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
php实现的农历算法实例
2015/08/11 PHP
jQuery实现统计输入文字个数的方法
2015/03/11 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
jQuery EasyUI Tab 选项卡问题小结
2016/08/16 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
树结构之JavaScript
2017/01/24 Javascript
微信JS SDK接入的几点注意事项(必看篇)
2017/06/23 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
基于Koa2写个脚手架模拟接口服务的方法
2018/11/27 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
Python如何使用27行代码绘制星星图
2020/07/20 Python
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
金讯Java笔试题目
2013/06/18 面试题
database面试题
2013/03/28 面试题
Static Nested Class 和 Inner Class的不同
2013/11/28 面试题
文明学生标兵事迹
2014/01/21 职场文书
新闻编辑求职信
2014/04/09 职场文书
C++程序员求职信范文
2014/04/14 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
《开国大典》教学反思
2016/02/16 职场文书
pandas DataFrame.shift()函数的具体使用
2021/05/24 Python
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis
Windows7下FTP搭建图文教程
2022/08/05 Servers