js如何判斷用戶是否是用微信瀏覽器
更新時(shí)間:2014年06月05日 17:13:34 作者:
微信內(nèi)置瀏覽器屏蔽了下載鏈接,如果用戶是用微信內(nèi)置瀏覽器打開(kāi)的,則提示用戶換一個(gè)瀏覽器打開(kāi)頁(yè)面,那么該如何判斷用戶是否是用微信瀏覽器呢
上周接到個(gè)需求,需求是這樣的:用戶掃一掃二維碼會(huì)產(chǎn)生一個(gè)鏈接,該鏈接會(huì)向后端發(fā)送個(gè)請(qǐng)求,返回一個(gè) apk 的下載地址,用戶點(diǎn)擊下載按鈕可以下載此 apk。然后就發(fā)生了問(wèn)題,經(jīng)過(guò)測(cè)試,發(fā)現(xiàn)用微信掃一掃打開(kāi)的頁(yè)面點(diǎn)擊下載按鈕下載不了 apk,后百度之,原來(lái)是微信內(nèi)置瀏覽器屏蔽了下載鏈接,后面和需求方溝通,需求改為如果用戶是用微信內(nèi)置瀏覽器打開(kāi)的,則提示用戶換一個(gè)瀏覽器打開(kāi)頁(yè)面,否則下載不了 apk。那么該如何判斷用戶是否是用微信瀏覽器呢?
我們知道 js 可以通過(guò) window.navigator.userAgent 來(lái)獲取瀏覽器的相關(guān)信息,比如:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36,那么我們也可以通過(guò)該方法來(lái)獲取微信內(nèi)置瀏覽器的相關(guān)信息:Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11d201 MicroMessenger/5.3。根據(jù)關(guān)鍵字 MicroMessenger 來(lái)判斷是否是微信內(nèi)置的瀏覽器。判斷函數(shù)如下:
function isWeiXin(){
var ua = window.navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i) == 'micromessenger'){
return true;
}else{
return false;
}
}
demo:
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>判斷是否是微信內(nèi)置瀏覽器</title>
</head>
<body>
<h1>如果用微信瀏覽器打開(kāi)可以看到下面的文字</h1>
<p></p>
</body>
</html>
<script type="text/javascript">
window.onload = function(){
if(isWeiXin()){
var p = document.getElementsByTagName('p');
p[0].innerHTML = window.navigator.userAgent;
}
}
function isWeiXin(){
var ua = window.navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i) == 'micromessenger'){
return true;
}else{
return false;
}
}
</script>
說(shuō)明:可以將上面的 demo 放到服務(wù)器上,然后生成個(gè)二維碼掃一掃。
我們知道 js 可以通過(guò) window.navigator.userAgent 來(lái)獲取瀏覽器的相關(guān)信息,比如:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36,那么我們也可以通過(guò)該方法來(lái)獲取微信內(nèi)置瀏覽器的相關(guān)信息:Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11d201 MicroMessenger/5.3。根據(jù)關(guān)鍵字 MicroMessenger 來(lái)判斷是否是微信內(nèi)置的瀏覽器。判斷函數(shù)如下:
復(fù)制代碼 代碼如下:
function isWeiXin(){
var ua = window.navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i) == 'micromessenger'){
return true;
}else{
return false;
}
}
demo:
復(fù)制代碼 代碼如下:
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>判斷是否是微信內(nèi)置瀏覽器</title>
</head>
<body>
<h1>如果用微信瀏覽器打開(kāi)可以看到下面的文字</h1>
<p></p>
</body>
</html>
<script type="text/javascript">
window.onload = function(){
if(isWeiXin()){
var p = document.getElementsByTagName('p');
p[0].innerHTML = window.navigator.userAgent;
}
}
function isWeiXin(){
var ua = window.navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i) == 'micromessenger'){
return true;
}else{
return false;
}
}
</script>
說(shuō)明:可以將上面的 demo 放到服務(wù)器上,然后生成個(gè)二維碼掃一掃。
相關(guān)文章
chrome監(jiān)聽(tīng)cookie變化與賦值問(wèn)題
這篇文章主要介紹了chrome監(jiān)聽(tīng)cookie變化與賦值問(wèn)題,cookie監(jiān)聽(tīng)與賦值操作需要manifest文件里聲明權(quán)限問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10
javascript 二進(jìn)制運(yùn)算技巧解析
javascript 中的二進(jìn)制運(yùn)算的一些技巧,曬出來(lái)和你們分享一下,希望可以幫助你們2012-11-11
基于Bootstrap實(shí)現(xiàn)圖片輪播效果
這篇文章主要為大家詳細(xì)介紹了基于bootstrap實(shí)現(xiàn)圖片輪播效果的相關(guān)資料,具有一定的參考價(jià)值,感興趣的朋友可以參考一下2016-05-05
JS動(dòng)態(tài)更改div高度實(shí)現(xiàn)代碼例子
在Web開(kāi)發(fā)中通過(guò)使用JavaScript可以動(dòng)態(tài)地修改HTML元素的屬性和樣式,下面這篇文章主要給大家介紹了關(guān)于JS動(dòng)態(tài)更改div高度實(shí)現(xiàn)的相關(guān)資料,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2023-11-11
javascript實(shí)現(xiàn)根據(jù)iphone屏幕方向調(diào)用不同樣式表的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)根據(jù)iphone屏幕方向調(diào)用不同樣式表的方法,涉及javascript針對(duì)樣式表動(dòng)態(tài)操作的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-07-07
javascript加號(hào)"+"的二義性說(shuō)明
單個(gè)的加號(hào)作為運(yùn)算符在 JavaScript 中有三種作用。2013-03-03
JavaScript隊(duì)列的應(yīng)用實(shí)例詳解【經(jīng)典數(shù)據(jù)結(jié)構(gòu)】
這篇文章主要介紹了JavaScript隊(duì)列的應(yīng)用,簡(jiǎn)單講述了隊(duì)列的概念并結(jié)合實(shí)例形式分析了基于javascript隊(duì)列排隊(duì)問(wèn)題解決方法,需要的朋友可以參考下2017-04-04
echarts地圖繪制自定義標(biāo)記實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于echarts地圖繪制自定義標(biāo)記實(shí)現(xiàn)的相關(guān)資料,ECharts地圖是一個(gè)功能強(qiáng)大的數(shù)據(jù)可視化工具,基于百度ECharts開(kāi)源項(xiàng)目開(kāi)發(fā)而成,它主要用于在網(wǎng)頁(yè)中展示各種地理數(shù)據(jù)和地圖的信息,需要的朋友可以參考下2023-11-11

