2011年8月23日 星期二

轉貼 伺服器如何判斷是否手機上網

  手機等行動裝置因為版面設計與一般電腦不太一樣, 所以在版面設計上也會有些差異,
 以下是相關的特色:

  •       手機:解析度較小、通常是以長度大於寬度的介面
  •       電腦:解析度比較大、寬螢幕

如何判斷是否是手機等裝置連上在網頁瀏覽,研究了一下找到兩種方式


  • 列出清單來過濾 header file 中的 User-Agent,手機品牌百百種,若要完全涵蓋可能有點困難,不過涵蓋 已知的大廠倒是ok, 見 [1],[3]       , 
  • 在首頁的html 中 加入javascript 判斷 是否解析度太小(ex. 小於 800 X 600), 見 [2]



附註1.
[5] 利用 取得header 然後判斷 是否 有包含 mozilla 的字串, 不過我用android 上網來看也是有這個字串, 所以我認為現在可能不能用了,如圖





[5] 的 code:

ASP:

if (Request.Headers["user-agent"] != null && Request.Headers["user-agent"].ToLower().ToString().IndexOf("mozilla") != -1)
Response.Redirect("www/index.aspx");
else
Response.Redirect("wap/index.aspx");


JSP:

if(request.getheader("user-agent")!=null&&(request.getheader("user-agent").tolowercase().indexof("mozilla")!=-1))
{
strfinishurl = "/web/index.jsp";
}else
{
strfinishurl = "/wap/index.jsp";
}




附註2. 手機上網常見的廠牌會出現在 User-Agent 中的:
           iphone, ipad, android, nokia, motorola, sony,.....




沒有留言: