上週接到個需求,需求是這樣的:用戶掃一掃二維碼會產生一個鏈接,該鏈接會向後端發送個請求,返回一個 apk 的下載地址,用戶點擊下載按鈕可以下載此 apk。然後就發生了問題,經過測試,發現用微信掃一掃打開的頁面點擊下載按鈕下載不了apk,後百度之,原來是微信內置瀏覽器屏蔽了下載鏈接,後面和需求方溝通,需求改為如果使用者是用微信內建瀏覽器開啟的,則提示使用者換一個瀏覽器開啟頁面,否則下載不了apk。那麼該如何判斷用戶是否是用微信瀏覽器呢?
我們知道js 可以透過window.navigator.userAgent 來取得瀏覽器的相關資訊,例如:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari 537.36,那麼我們也可以透過此方法取得微信內建瀏覽器的相關資訊: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。根據關鍵字 MicroMessenger 來判斷是否為微信內建的瀏覽器。判斷函數如下: