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 原型和继承(Prototypes and Inheritance)
Apr 01 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
Feb 02 Javascript
Node.js 制作实时多人游戏框架
Jan 08 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
Apr 20 Javascript
基于javascript实现最简单的选项卡切换效果
May 16 Javascript
js控制台输出的方法(详解)
Nov 26 Javascript
javascript阻止事件冒泡和浏览器的默认行为
Jan 21 Javascript
JS实现Cookie读、写、删除操作工具类示例
Aug 28 Javascript
如何为你的JavaScript代码日志着色详解
Apr 08 Javascript
JavaScript canvas绘制折线图
Feb 18 Javascript
解决vue的touchStart事件及click事件冲突问题
Jul 21 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
Nov 04 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 在线打包_支持子目录
2008/06/28 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
Flash+XML滚动新闻代码 无图片 附源码下载
2007/11/22 Javascript
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
js继承call()和apply()方法总结
2014/12/08 Javascript
javascript基于DOM实现权限选择实例分析
2015/05/14 Javascript
微信WeixinJSBridge API使用实例
2015/05/25 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
JS实现重新加载当前页面或者父页面的几种方法
2016/11/30 Javascript
jquery操作ID带有变量的节点实例
2016/12/07 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
使用koa2创建web项目的方法步骤
2019/03/12 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
2020/01/02 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
python实现电子词典
2020/04/23 Python
python实现从web抓取文档的方法
2014/09/26 Python
Python中django学习心得
2017/12/06 Python
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
详解爬虫被封的问题
2019/04/23 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
英国比较机场停车场网站:Airport Parking Essentials
2019/12/01 全球购物
C#笔试题集合
2013/06/21 面试题
化学系大学生自荐信范文
2014/03/01 职场文书
开学典礼决心书
2014/03/11 职场文书
四年级学生评语大全
2014/04/21 职场文书
2014年保卫科工作总结
2014/12/05 职场文书