2010-08-09 83 views
6

我想爲iPhone 4用戶加載更高分辨率的圖片,但我知道檢測用戶的唯一方法是通過用戶代理。但我的印象是任何iOS4手機上的MobileSafari的用戶代理都是一樣的。有沒有辦法辨別iPhone 4訪問者的iPhone 3G/S訪問者?

我能做些什麼來檢測iPhone 4?

+0

可能的重複:http://stackoverflow.com/questions/3262432/其中OP表示可以從js檢測屏幕大小。 – mvds 2010-08-09 00:51:34

+0

http://stackoverflow.com/questions/3354246/javascript-iphone-selection/3354478#3354478 也許的援助。 – 2010-08-09 00:52:23

回答

3

您可以使用CSS3媒體查詢檢測iPhone 4的設備像素比率(多少CSS像素等於物理顯示像素)。然後,您可以使用CSS來加載更高分辨率的圖像,而不是普通的圖像。

在您的網頁上<head>標籤,添加此引用將只加載iPhone 4用戶外部樣式表:

<link rel="stylesheet" type="text/css" href="high_res.css" media="only screen and (-webkit-min-device-pixel-ratio: 2)" /> 

media屬性指定只能使用此樣式表與設備最小的設備像素比例爲2(即iPhone 4)。通過使用CSS background-image屬性,而不是在

#highres-if-possible { 
    background-image: url(high_res_pic.png); 
} 

注意,您必須指定在HTML圖像:然後,你可以在high_res.css添加CSS規則,高分辨率版本替換低分辨率圖像src屬性。

例子:一個60x50的形象,取代:

<img id="highres-if-possible" src="low_res_pic.png"> 

<img id="highres-if-possible" style="width: 60px; height: 50px; background-image: url(low_res_pic.png);"> 

沒有保證,這樣的指定圖像將在所有瀏覽器(Internet Explorer)中工作,但它應該工作正常在符合標準的瀏覽器中(以及在iPhone上)。

有關CSS3媒體查詢的詳細信息,並用它們來檢測iPhone 4,請參閱:http://blog.iwalt.com/2010/06/targeting-the-iphone-4-retina-display-with-css3-media-queries.html

更新:我碰到this postthis post來了,可能有更好的方法來處理指定圖像使用CSS(使用<img style="background-image:url(http://.. .)">而不是<img src="http://...">)比我上面有。

-1

使用HTTP_USER_AGENT字符串,你可能會找出它是哪一個。我從來沒有嘗試過,但如果應該讓你開始。另外我看到了一些PHP庫,會爲你做。希望這可以幫助。 歡呼聲。