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 相关文章推荐
js监听表单value的修改同步问题,跨浏览器支持
Dec 31 Javascript
JS画线(实例代码)
Nov 20 Javascript
js正则表达exec与match的区别说明
Jan 29 Javascript
谈谈我对JavaScript DOM事件的理解
Dec 18 Javascript
学习使用jquery iScroll.js移动端滚动条插件
Mar 24 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
Dec 08 Javascript
微信小程序获取用户openId的实现方法
May 23 Javascript
基于webpack4搭建的react项目框架的方法
Jun 30 Javascript
vue中的适配px2rem示例代码
Nov 19 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
Nov 12 Javascript
Vue实现圆环进度条的示例
Feb 06 Vue.js
关于Js中new操作符的作用详解
Feb 21 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 文件缓存函数
2011/10/08 PHP
基于MySQL体系结构的分析
2013/05/02 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
浅谈php7的重大新特性
2015/10/23 PHP
PHP内核探索之变量
2015/12/22 PHP
详解PHP归并排序的实现
2016/10/18 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
React-Native中props具体使用详解
2017/09/04 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
iphone刘海屏页面适配方法
2019/05/07 Javascript
pyv8学习python和javascript变量进行交互
2013/12/04 Python
Python实现115网盘自动下载的方法
2014/09/30 Python
python排序方法实例分析
2015/04/30 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
python3中numpy函数tile的用法详解
2019/12/04 Python
python复合条件下的字典排序
2020/12/18 Python
使用python实现学生信息管理系统
2021/02/25 Python
塔吉特百货公司官网:Target
2017/04/27 全球购物
表达自我的市场:Society6
2018/08/01 全球购物
怀旧香味蜡烛:Homesick
2019/11/02 全球购物
高中自我鉴定范文
2013/11/03 职场文书
技术人员面试提纲
2013/11/28 职场文书
应付会计岗位职责
2013/12/12 职场文书
导师推荐信范文
2014/05/09 职场文书
运动会广播稿100字
2014/09/14 职场文书
护士求职自荐信范文
2015/03/04 职场文书
Python爬虫基础之简单说一下scrapy的框架结构
2021/06/26 Python