通过判断 UA 中是否有关键字 micromessenger,有的话则是微信内置浏览器。下面小编给大家分享实现代码,代码简单易懂,需要的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
先给大家说下实现原理
根据判断 UA 中是否有关键字 micromessenger,有的话则是微信内置浏览器
实现代码如下所示:
- //判断是否微信登陆
- function isWeiXin() {
- var ua = window.navigator.userAgent.toLowerCase();
- console.log(ua);//mozilla/5.0 (iphone; cpu iphone os 9_1 like mac os x) applewebkit/601.1.46 (khtml, like gecko)version/9.0 mobile/13b143 safari/601.1
- if (ua.match(/MicroMessenger/i) == 'micromessenger') {
- return true;
- } else {
- return false;
- }
- }
- if(isWeiXin()){
- console.log(" 是来自微信内置浏览器")
- }else{
- console.log("不是来自微信内置浏览器")
- }
微信浏览器的 UA 栗子
在 iPhone 下:
- Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 MicroMessenger/4.3.2
在 Android 下:
- Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.255
新建模拟器,更换 UA 如图:
用 Chrome 的 iPhone5 模拟测试
PS:js 判断是否在微信浏览器中打开
用 JS 来判断了,经过查找资料终于实现了效果,直接上代码
- function is_weixn(){
- var ua = navigator.userAgent.toLowerCase();
- if(ua.match(/MicroMessenger/i)=="micromessenger") {
- return true;
- } else {
- return false;
- }
- }
通过测试完全通过,无论是 android 还是 iphone,ipad 都可以,当然我们除了用 js 来判断之外,用其它语言来判断就更简单了,比如 PHP
- function is_weixin(){
- if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {
- return true;
- }
- return false;
- }
来源: http://www.phperz.com/article/17/0401/264938.html