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获取地址栏参数
Dec 22 Javascript
通过修改referer下载文件的方法
May 11 Javascript
JS 自动安装exe程序
Nov 30 Javascript
在JavaScript中使用NaN值的方法
Jun 05 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
Aug 28 Javascript
javascript三种代码注释方法
Jun 02 Javascript
JS中递归函数
Jun 17 Javascript
AngularJS封装指令方法详解
Dec 12 Javascript
iframe与主框架跨域相互访问实现方法
Sep 14 Javascript
JS中图片压缩的方法小结
Nov 14 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
Jun 18 jQuery
JavaScript事件冒泡机制原理实例解析
Jan 14 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
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
初识PHP
2014/09/28 PHP
PHP开发框架laravel安装与配置教程
2015/03/13 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
6款经典实用的jQuery小插件及源码(对话框/提示工具等等)
2013/02/04 Javascript
JQuery+DIV自定义滚动条样式的具体实现
2013/06/25 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
jQuery学习笔记之jQuery原型属性和方法
2014/06/09 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
微信小程序 教程之引用
2016/10/18 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
jQuery实现字符串全部替换的方法【推荐】
2017/03/09 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
2018/02/26 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
countUp.js实现数字动态变化效果
2019/10/17 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
详解python运行三种方式
2019/05/13 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
pycharm新建一个python工程步骤
2019/07/16 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
Python socket聊天脚本代码实例
2020/01/02 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
浅谈html5之sse服务器发送事件EventSource介绍
2017/08/28 HTML / CSS
2014年政风行风自查自纠报告
2014/10/21 职场文书
乡镇群众路线专项整治方案
2014/11/03 职场文书
刑事案件上诉状
2015/05/23 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
四群教育工作总结
2015/08/10 职场文书