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 相关文章推荐
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
Oct 11 Javascript
JavaScript及jquey实现多个数组的合并操作
Sep 06 Javascript
如何在MVC应用程序中使用Jquery
Nov 17 Javascript
javascript实现Email邮件显示与删除功能
Nov 21 Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 Javascript
JavaScript实战(原生range和自定义特效)简单实例
Aug 21 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
Jun 04 Javascript
分享19个JavaScript 有用的简写写法
Jul 07 Javascript
Vue自定义指令使用方法详解
Aug 21 Javascript
JS监控关闭浏览器操作的实例详解
Sep 12 Javascript
Vue中的methods、watch、computed的区别
Nov 26 Javascript
vue解决使用$http获取数据时报错的问题
Oct 30 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代码
2007/03/03 PHP
PHP 输出缓存详解
2009/06/20 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
推荐十款免费 WordPress 插件
2015/03/24 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
2011/05/25 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
2013/02/05 Javascript
JS求平均值的小例子
2013/11/29 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
2016/12/08 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
vue动态删除从数据库倒入列表的某一条方法
2018/09/29 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
2019/03/14 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
机器学习10大经典算法详解
2017/12/07 Python
python破解zip加密文件的方法
2018/05/31 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
python调用百度语音REST API
2018/08/30 Python
python 格式化输出百分号的方法
2019/01/20 Python
python global关键字的用法详解
2019/09/05 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
如何使用PHP session
2015/04/21 面试题
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
2013/08/04 面试题
抽样调查项目计划书
2014/04/24 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
教师个人总结范文
2015/02/11 职场文书
在人间读书笔记
2015/06/30 职场文书
高一英语教学反思
2016/03/03 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers