2010-08-16 42 views
6

我讀過它的壞(不建議)使用用戶代理嗅探發送正確的內容爲移動瀏覽器,所以我想知道什麼是最好的方式來做到這一點?如何檢測移動瀏覽器並將適當的內容指向它?

我正在使用ASP.NET MVC,並且我已經構建了我的網站,並且它在桌面瀏覽器上運行良好,所以我正在尋找開始構建移動版本。當移動瀏覽器來我的網站,我想用一組不同的意見,這非常有擁有的以下屬性:

  1. 鏈接到預比例縮小圖像
  2. 使用最小的JavaScript
  3. 刪除所有但基本的內容

我的第一個想法是嗅探用戶代理,然後發送一個不同的.CSS文件,但如上所述,我已經讀過,這是一個不好的方法來做到這一點,所以我請求你的想法。

+1

[檢測從移動瀏覽器的請求在ASP.NET](http://stackoverflow.com/questions/2653765/detecting-requests-from-mobile-browsers-in-asp-net) – jfar 2010-08-16 23:40:36

+0

@jfar的可能重複, MVC對此有特定要求。看到Hanselman的帖子。 AFAICS,你鏈接的答案不包括這一點。 – 2010-08-17 22:17:58

+0

你可以在這裏看到一些解決方案:http://stackoverflow.com/questions/6844020/way-to-do-content-adaptation-to-mobile – 2011-08-17 13:06:27

回答

7

用戶代理真的是你在HTTP GET請求中所有的,但你應該讓其他人維護這個列表。我們使用帶有自定義視圖引擎的Microsoft Mobile Device Browser File,大致類似於this Scott Hanselman post

+0

謝謝,這是我有點想法,猜我誤解了我的原因告訴不要。我完全同意保持兼容性列表是PITA! – Nate 2010-08-16 21:12:10

1

最簡單的方法可以使用一個單獨的域名「m.yourdomain.com」或「yourdomain.mobi」(Source),這種方式可以假設用戶在移動設備上。

+0

在這種情況下,我會使用瀏覽器代理和cookie重定向一次嗎?如果他們回來了,假設我錯誤地標記了他們的用戶代理並讓他們繼續在整個站點上? – Nate 2010-08-16 21:05:51

+0

這種方法可能會很痛苦。你應該假設任何人去m.website.com需要移動網站,但總是給他們一個鏈接到頁腳的完整網站。 – 2010-08-16 21:15:47

+0

@Nissan - 這是一個好主意,儘管我越想越多,我相信我的答案不一定是個好主意。 – ChrisF 2010-08-16 21:24:58

0

雖然我認爲它不願意瀏覽器來確定能力,你應該使用能力嗅探,如JQuery.support。當涉及到實際呈現顯着不同的佈局,那麼我認爲你必須嗅探瀏覽器ID並採取相應的行動。

+0

在頁面加載完成後*起作用*但是,當響應服務器上的GET請求時,沒有辦法做到這一點。 – 2010-08-16 21:18:49

+0

@Craig - 當然,我有我的頭從客戶端的思想,但問題是從服務器端的處理,你明明只有有GET過程中提供的瀏覽器ID。 – Lazarus 2010-08-17 08:58:29