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笔记一 js以及json基础使用说明
May 22 Javascript
别了 JavaScript中的isXX系列
Aug 01 Javascript
javascript跑马灯悬停放大效果实现代码
Dec 12 Javascript
a标签click和href执行顺序探讨
Jun 23 Javascript
node.js中的http.response.writeHead方法使用说明
Dec 14 Javascript
js获取元素外链样式的方法
Jan 27 Javascript
完美解决浏览器跨域的几种方法(汇总)
May 08 Javascript
JavaScript面向对象精要(上部)
Sep 12 Javascript
如何获取TypeScript的声明文件.d.ts
May 01 Javascript
vue.js 实现点击展开收起动画效果
Jul 07 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
Jul 13 Javascript
微信小程序收货地址API兼容低版本解决方法
May 18 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/01/06 PHP
php 生成唯一id的几种解决方法
2013/03/08 PHP
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
YII框架关联查询操作示例
2019/04/29 PHP
PHP var关键字相关原理及使用实例解析
2020/07/11 PHP
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
2015/08/25 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
2016/06/26 Javascript
原生js实现网易轮播图效果
2020/04/10 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
2018/05/16 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
javascript设计模式 ? 建造者模式原理与应用实例分析
2020/04/10 Javascript
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
Linux 发邮件磁盘空间监控(python)
2016/04/23 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
使用Python读取大文件的方法
2018/02/11 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
django表单的Widgets使用详解
2019/07/22 Python
Python文件操作基础流程解析
2020/03/19 Python
系统管理员的职责包括那些?管理的对象是什么?
2013/01/18 面试题
超级搞笑检讨书
2014/01/15 职场文书
爱我中华教学反思
2014/04/28 职场文书
心理健康活动总结
2014/04/30 职场文书
拉歌口号大全
2014/06/13 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
《梅花魂》教学反思
2016/02/18 职场文书