2011-06-16 89 views
2

我目前正在開發一款適用於智能手機和平板電腦的客戶端應用程序。因此它會得到兩種不同的佈局模式。檢測客戶端是平板電腦還是手機的最佳方式是什麼?

雖然用戶可以在兩種模式之間切換,但我必須在首次使用應用程序時預先設置模式。

所以我正在尋找一種可靠的方式來自動檢測用戶是否帶有平板電腦或智能手機(與桌面瀏覽器無關)。

我可以檢查瀏覽器的分辨率,但我不確定這是否是正確的羅馬方式,因爲960x640px的iPhone 4的分辨率幾乎與1024x768的iPad的屏幕分辨率一樣高,並且保持在介意android設備。

有什麼建議嗎?

回答

6

您可以檢測它是否是使用http://detectmobilebrowser.com/腳本的電話。如果沒有,你可以認爲它是一個平板電腦(因爲,正如你所提到的,桌面瀏覽器與這個應用程序無關)。

+0

哦,你說得對。認爲它會將iPad檢測爲移動設備,但事實並非如此。所以我會和它一起去的。 – 2011-06-16 15:17:51

0

其中一種方法是檢查用戶代理。

var UA = navigator.userAgent; 
if (UA.indexOf("iPad") != -1) { 
    // iPad 
} else if (UA.indexOf("iPhone") != -1) { 
    // iPhone 
} 
+0

因爲我支持蘋果設備的類型不止twe,它會變得非常快,非常複雜(想想所有的Android設備)。 – 2011-06-16 15:11:30

+0

是的,你將不得不測試其他設備;我以iPad和iPhone爲例。那裏可能有一些移動瀏覽器檢測腳本。我會盡量使用屏幕分辨率(因爲有很多不同的設備)。 – Will 2011-06-16 15:58:40

2

我會檢測屏幕分辨率,因爲它應該不是真的重要,如果瀏覽器是手機或平板電腦去,應該不會影響的唯一事情是佈局。決定使用哪種尺寸的佈局是最好的選擇。

+2

很難繪製邊框並定義智能手機屏幕分辨率的結束位置以及平板電腦分辨率的起始位置。 – 2011-06-16 15:17:15

0

+1,而不是用戶代理測試的屏幕分辨率(和iPhone VS iPad是一個非常簡單的測試反正,怎麼樣所有其他平板設備?)

在測試方面爲iPhone 4,即視網膜顯示器,這個測試應該在你的Javascript中工作:

相關問題