根據 HTTP heaader 的 user agent string,來判斷用戶端的移動設備環境。 detectmobilebrowsers 是為了快速檢測 WURFL 檢測到的所有主要設備。
下載 detectmobilebrowsers script,並將 http:// detectmobilebrowser.com/mobile
更改為您移動網站的 URL. #
Mobile Browser 會將所有與 User Agent 相關的資訊包含在 User Agent String。 根據 HTTP 協議提供的 UA header,伺服器可拿到 User Agent String 得知終端的具體型號。 我們便可以根據這個型號找到設備的規格屬性。(但 user agent string 是有可能造假的)
WURFL (Wireless Universal Resource File 無線通用資源文件),主頁架在 Source Forge。可以把 WURFL 理解成一個開源的免費的很大的 XML 文件,收集了世界上所有手機的技術參數。
用 match、indexOf 或 test 來尋找 navigator.userAgent 裡面有沒有任何包含 ipad 的字眼,然後傳回 true 或 false。
*註:e.g. navigator.userAgent.match(/iPad/i)
,其中 /iPad/i
是正規表示法中的 case insensitive,i
指的是兩 /
內的字串不分大小寫的意思
語法:
if (navigator.userAgent.match(/XXXXX/i))
{
window.location="http://my.mobile.url";
// window.alert(navigator.vendor); // alert vendor 資料
// window.alert(navigator.userAgent); // alert userAgent 資料
}
//=================WindowsPhone系列=================
//*註:navigator.userAgent.match(/iPad/i),其中/…/i
// 是正規表示法中的 case insensitive,指的是兩斜線內的字串不分大小寫的意思
if( (navigator.userAgent.match(/WindowsPhone/i))) {
window.location="http://detectmobilebrowser.com/mobile";
//目前沒有支援 window.alert(navigator.userAgent);
}
////=================android系列=================
(function(a,b){if(/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|meego.+mobile|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))window.location=b})(navigator.userAgent||navigator.vendor||window.opera,'http://www.google.com.tw');
//這樣也可以
if (navigator.userAgent.match(/Android/i))
{
//window.location="http://detectmobilebrowser.com/mobile";
window.alert(navigator.vendor);
window.alert(navigator.userAgent);
}
//=================iOS系列=================
//可以用 vendor 判斷
if (navigator.vendor.match(/Apple Computer, Inc./i)){
window.alert(navigator.vendor);
}
//也可以用 userAgent 判斷
if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i) || (navigator.userAgent.match(/iPad/i)))) {
//window.alert(navigator.userAgent);
}