如何判斷內建瀏覽器(通過User Agent實現),useragent
在進行公眾帳號開發的時候,其中很大一塊是微網站的開發,我們需要知道當前的瀏覽器是內建的瀏覽器,那麼如何判斷呢?
內建瀏覽器的 User Agent
如何判斷內建瀏覽器,首先需要擷取內建瀏覽器的User Agent,經過在 iPhone 上的瀏覽器的檢測,它的 User Agent 是:
Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 MicroMessenger/5.0.1
所以通過識別 MicroMessenger 這個關鍵字來確定是否內建的瀏覽器了。
通過 JavaScript 判斷
function is_weixin(){var ua = navigator.userAgent.toLowerCase();if(ua.match(/MicroMessenger/i)=="micromessenger") {return true;} else {return false;}}
通過 PHP 判斷
function is_weixin(){ if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {return true;} return false;}
用php怎讓內建瀏覽器跳轉到手機其他瀏覽器
在做公眾平台的時候,為了防止自己辛辛苦苦做的webapp被人copy,我們都想限制程式只能在瀏覽。下面是PHP限制頁面只能在內建瀏覽器訪問的代碼。
在做公眾平台的時候,為了防止自己辛辛苦苦做的webapp被人copy,我們都想限制程式只能在瀏覽。下面是PHP限制頁面只能在內建瀏覽器訪問的代碼。
<!--?php <br ?--> $useragent = $_SERVER['HTTP_USER_AGENT'];if (strpos($useragent, 'MicroMessenger') === false) {echo " 非瀏覽器禁止訪問";} else {echo "瀏覽器允許訪問";}上面這個代碼還不完善,Windows phone的就不能用了,於是修改下:
<!--?php <br ?--> $useragent = addslashes($_SERVER['HTTP_USER_AGENT']);if(strpos($useragent, 'MicroMessenger') === false && strpos($useragent, 'Windows Phone') === false ){echo " 非瀏覽器禁止訪問";}else{echo "瀏覽器允許訪問";}
塞班系統我就沒測試了,都沒落了。大家可以通過擷取 HTTP_USER_AGEN,判斷。
但是你覺得上面的方法能阻止別人去偷竊你的介面,你就錯了,只要偽造一下HTTP_USER_AGEN還是能正常訪問。在Google瀏覽器上面裝個User-Agent Switcher,還是能隨便訪問。於是我還想到用JS來判斷是不是手機訪問,但是只要瀏覽器禁止JS運行,還是能正常訪問。。不過或許這樣能難到一些新手吧。
怎查看瀏覽器的User Agent,不用工具的情況下
例如:IE瀏覽器
開啟IE——工具——屬性,在彈出的對話方塊點“串連”選項卡,在下面有一個“區域網路設定”按鈕,點擊它……看我的……