热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JS–定制功能(1):判断是否是微信浏览器

最近半年来一直在微信小程序,微信公众号打转,小程序就不说了,跟这个没得关系,公众号页面以及一些附属的H5页面,很多时候会通过微信直接分享出去。虽然公众号页面也是H5网页

最近半年来一直在微信小程序,微信公众号打转,小程序就不说了,跟这个没得关系,公众号页面以及一些附属的H5页面,很多时候会通过微信直接分享出去。虽然公众号页面也是H5网页,但有时候又是特殊的H5页面,特殊就特殊在只能微信浏览器内打开,在其他浏览器或其他应用的浏览器打开有些功能无法正常使用;而且还可能存在一些其他定制功能,又只能在桌面浏览器内打开等等,总之一句话:就是要判定网页打开的运行环境

具体通过判断navigator对象内userAgent中是否存在关键字micromessenger,存在则是微信内置浏览器,反之不是。

function isWeChat() {
let ua
= window.navigator.userAgent.toLowerCase();
return ua.match(/MicroMessenger/i) == "micromessenger"; // 判定为true则是微信浏览器,false则不是
}

也可以写成

function isWeChat() {
let ua
= window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") {
return true;// 是微信浏览器
} else {
return false;// 不是
}
}

升级版,上面的代码只能判定当前环境是否是微信浏览器,对于其他的,如:是否是移动端浏览器还是PC端浏览器,则无能为力。

function judgeEnv() {
var system = {
win:
false,
mac:
false,
xll:
false,
ipad:
false
};
// 检测网页运行平台
var p = window.navigator.platform;
system.win
= p.indexOf("Win") == 0; // windows
system.mac = p.indexOf("Mac") == 0; // 苹果
system.x11 = p == "X11" || p.indexOf("Linux") == 0; // Linux
system.ipad = navigator.userAgent.match(/iPad/i) != null ? true : false; // iPad
if (system.win || system.mac || system.xll || system.ipad) { // 在PC端上打开的
return system;
}
else { // 在手机端打开的则直接跳转到wap.baidu.com页面
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") { // 在手机端微信上打开的(注:这里不能用===,具体看打印)
return true;
}
else { // 在手机上非微信上打开的
return false;
}
}
}

这个升级版也只是初级升级,如果要更加细致化的升级,PC端还得判定是什么浏览器(或什么内核的浏览器),如:IE,谷歌,火狐等等,以及国内的360,QQ,百度等等。

最后:由于这类运行环境(平台)的判定实际上是一次性的东西,也就页面打开时判定一次就够了,后面基本都用不上了,不需要每个页面都判定(特定页面定制执行环境除外)。

JS - 定制功能(1): 判断是否是微信浏览器

原文:https://www.cnblogs.com/donghuang/p/14954329.html


推荐阅读
author-avatar
唐进单
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有