JS判斷是否是微信頁面,判斷手機操作系統(ios或android)並跳轉到不同下載頁面
可以在不同設備,不同操作系統,不同浏覽器查看本頁面。本頁地址:
http://hovertree.com/hvtart/bjae/o4xk3s6h.htm
JS判斷客戶端是否是微信訪問
<script>
function is_weixin() {
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
return true;
} else {
return false;
}//hovertree.com
}
document.write(is_weixin())
</script>
效果如下:
JS判斷手機操作系統(ios或android)
<span id="hovertreesystem"></span>
<script>
$(function () {
var u = navigator.userAgent, app = navigator.appVersion;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //g
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios終端
if (isAndroid) {
// window.location.href = 'appDownload.html';
$("#hovertreesystem").text('HoverTree提示:Android系統');
return;
}
if (isIOS) {
// window.location.href = 'iosDownload.html';
$("#hovertreesystem").text('HoverTree提示:IOS系統');
return;
}//hovertree.com
$("#hovertreesystem").text('HoverTree提示:非IOS或Android系統');
});</script>
效果如下:
若要根據結果跳轉到不同下載頁面,可以使用
window.location.href = 'http://hovertree.com/';
js判斷是否電腦端
<script>
function IsPC() {
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone",
"SymbianOS", "Windows Phone",
"iPad", "iPod"];
var flag = true;
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}//hovertree.com
return flag;
}
document.write(IsPC())
</script>
效果如下:
最近在做微信服務號開發,其中遇到一個問題是微信服務號查看的個人的消息,如果點擊在浏覽器中查看(iOS中是在Safari中打開)應該是跳轉到登錄頁面,因為頁面需要從後台獲取,因為需要服務端判斷,如果是存頁面不需要後台數據可以在前台進行判斷,因為後台是NodeJS,所以給出客戶端和服務端兩個版本的代碼供參考。
客戶端判斷
方法很簡單,就是通過userAgent去判斷,先判斷是否為移動端,可以判斷是iOS終端和Android終端,也可以具體到應用進行判斷微信,微博,qq訪問:
var browser = {
versions: function() {
var u = navigator.userAgent,
ua = navigator.userAgent.toLowerCase();
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應該程序,沒有頭部與底部
wechat:ua.match(/MicroMessenger/i) == "micromessenger",//微信
weibo:ua.match(/WeiBo/i) == "weibo",//微博
qq:ua.match(/QQ/i) == "qq"//qq
};
}(),
language: (navigator.browserLanguage || navigator.language).toLowerCase()
};
console.log(navigator.userAgent);
服務端判斷
NodeJS同樣也是通過userAgent判斷,代碼如下:
var browser= function(req) {
var u = req.headers['user-agent'];
var ua = u.toLowerCase();
//移動終端浏覽器版本信息
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應該程序,沒有頭部與底部
wechat: ua.match(/MicroMessenger/i) == "micromessenger",//微信
weibo: ua.match(/WeiBo/i) == "weibo",//微博
qq: ua.match(/QQ/i) == "qq"//QQ空間
};
};
exports.browser=browser;
基本的判斷都有,可以根據判斷的結果給出不同的響應~