最近一直在忙咱們團隊的項目「咖啡之翼」,在這個項目中,咱們爲移動平臺提供了一個優秀的體驗。伴隨Android平臺的紅火發展。不只帶動國內智能手機行業,並且許多國內開發者也開始投身於Android移動終端的大浪潮中。若是不少互聯網大浪潮你錯過了。那麼這個Android浪潮你絕對不能錯過。目前咱們爲「咖啡之翼」已經開發了移動終端以及安卓客戶端,你們使用Android或者IOS操做系統的手機,直接訪問域名www.sygxy.cn便可觀看移動終端效果。同時Android客戶端已經上架到騰訊「應用寶」和「百度手機助手」等應用商城。你們能夠直接搜索「咖啡之翼」進行下載。在沒有任何的推廣的狀況了,僅僅上架一週,已經擁有超過100+的下載量。javascript
若是須要對移動終端進行優化,必需要作的就是,判斷客戶機的訪問設備是什麼。經過判斷的結果,返回不能的域名地址,繼而加載不一樣的CSS文件。java
咱們使用的判斷方式是經過user-agent值,來進行判斷。使用javascript框架中的Navigator對象的userAgent屬性。navigator 對象沒有公開標準,不過如今市面上全部瀏覽器都支持該對象。使用userAgent屬性返回由客戶機發送服務器的 user-agent 頭部的值。頭信息中有一個 User-Agent,它的做用是告訴服務器,用戶客戶端是什麼瀏覽器,以及操做系統的信息的。使用正則表達式進行user-agent值的獲取。和本地的值進行判斷,這個匹配值能夠是移動操做系統例如Android,ios,也能夠爲瀏覽器的名稱。有匹配項則跳轉,不然則不會跳轉,直接進入PC端首頁。ios
具體的代碼實現,咱們爲了提升網站的可移植性,使用了JavaScript腳本語言。使用此技術的好處在筆者看來有兩點正則表達式
1:能夠提升網站的可移植性,若是在此後的Web項目中,咱們團隊須要再一次加入移動終端的效果,就能夠很輕鬆的引入這部分的JS代碼,進行判斷。提升之後的工做效率。瀏覽器
2:第二點是便於Web程序能夠在不用的界面加載,是否引入這部分移動終端的判斷代碼。服務器
具體實現:app
咱們把判斷訪問的腳本抽離,若是哪一個頁面須要進行客戶終端的判斷,咱們就直接在頁面使用<script></script>引入腳本程序,具體判斷代碼以下:框架
function uaredirect(f){ try{if( document.getElementById("bdmark")!=null){ return } var b=false; if(arguments[1]){ var e=window.location.host;var a=window.location.href; if(isSubdomain(arguments[1],e)==1){ f=f+"/#m/"+a;b=true}else{if(isSubdomain(arguments[1],e)==2){f=f+"/#m/"+a;b=true} else{f=a;b=false}}} else{b=true}if(b){var c=window.location.hash; if(!c.match("fromapp")){ if((navigator.userAgent.match(/(iPhone|iPod|Android|ios|Windows Phone)/i))){location.replace(f)}}}}catch(d) { }}