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 相关文章推荐
jquery动态加载js三种方法实例
Aug 03 Javascript
js实现大转盘抽奖游戏实例
Jun 24 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
Dec 13 Javascript
input框中的name和id的区别
Nov 16 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
Dec 06 Javascript
微信小程序实现tab和swiper切换结合效果
Jul 17 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
Dec 06 Javascript
详解js类型判断
May 22 Javascript
ES6与CommonJS中的模块处理的区别
Jun 13 Javascript
JavaScript创建对象的四种常用模式实例分析
Jan 11 Javascript
vue 解决文本框被键盘遮住的问题
Nov 06 Javascript
vue组件中传值EventBus的使用及注意事项说明
Nov 16 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_xmlhttp 乱码问题解决方法
2009/08/07 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
用javascript做拖动布局的思路
2008/05/31 Javascript
鼠标事件延时切换插件
2011/03/12 Javascript
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
jquery $(document).ready()和window.onload的区别浅析
2015/02/04 Javascript
JavaScript编写九九乘法表(两种任选)
2017/02/04 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
JS实现的对象去重功能示例
2019/06/04 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
利用layer实现表单完美验证的方法
2019/09/26 Javascript
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
python实现数组插入新元素的方法
2015/05/22 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
python增加图像对比度的方法
2019/07/12 Python
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
2020/04/27 HTML / CSS
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
护士自我鉴定范文
2013/10/06 职场文书
电子信息科学专业自荐信
2014/01/30 职场文书
前处理组长岗位职责
2014/03/01 职场文书
《青蛙看海》教学反思
2014/04/23 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
实训报告范文大全
2014/11/04 职场文书
答谢词范文
2015/01/05 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers