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 window.opener返回父页面的应用
Oct 24 Javascript
javascript截取字符串小结
Apr 28 Javascript
JS实现的最简Table选项卡效果
Oct 14 Javascript
javascript实现别踩白块儿小游戏程序
Nov 22 Javascript
bootstrap multiselect 多选功能实现方法
Jun 05 Javascript
微信小程序 自定义消息提示框
Aug 06 Javascript
vue-resource + json-server模拟数据的方法
Nov 02 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
Aug 03 jQuery
vue项目前端埋点的实现
Mar 06 Javascript
vue cli3.0 引入eslint 结合vscode使用
May 27 Javascript
借助云开发实现小程序短信验证码的发送
Jan 06 Javascript
JavaScript冒泡算法原理与实现方法深入理解
Jun 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
自动分页的不完整解决方案
2007/01/12 PHP
解析smarty 截取字符串函数 truncate的用法介绍
2013/06/20 PHP
php Calender(日历)代码分享
2014/01/03 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
PHP接口继承及接口多继承原理与实现方法详解
2017/10/18 PHP
php删除二维数组中的重复值方法
2018/03/12 PHP
javascript Onunload与Onbeforeunload使用小结
2009/12/31 Javascript
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
2018/08/20 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
详解Vue底部导航栏组件
2019/05/02 Javascript
[04:42]2015国际邀请赛CDEC战队晋级之路
2015/08/13 DOTA
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
[58:32]EG vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
Python自动登录126邮箱的方法
2015/07/10 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
tensorflow获取变量维度信息
2018/03/10 Python
python实现验证码识别功能
2018/06/07 Python
python使用epoll实现服务端的方法
2018/10/16 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
全球知名的婚恋交友网站:Match.com
2017/01/05 全球购物
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
高校生生产实习自我鉴定
2013/09/21 职场文书
自考生自我鉴定范文
2013/10/01 职场文书
2016寒假社会实践心得体会范文
2015/10/09 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书
《窃读记》教学反思
2016/02/18 职场文书