2014-01-24 2 views
0

iPad 3에서는 실행해야하지만 iPad 4 또는 부사장에서는 실행하지 않아도되는 CSS를 추가하려고합니다. 나는 모두와 함께 이전 버전을 떠나 대상 수 있어요 :대상 iPad3 (iPad4 제외)

@media 
    only screen and (-webkit-min-device-pixel-ratio: 2), 
    only screen and ( min--moz-device-pixel-ratio: 2), 
    only screen and ( -o-min-device-pixel-ratio: 2/1), 
    only screen and (  min-device-pixel-ratio: 2), 
    only screen and (    min-resolution: 192dpi), 
    only screen and (    min-resolution: 2dppx) { } 

하지만 지금까지 내가 차이가 3과 4가 밖으로 모든 CSS 나 JS 솔루션 사이에 대상으로 찾을 수 없습니다. 어떤 도움을 크게 미디어 쿼리 또는 사용자 에이전트를 사용하여

+0

불가능하여 CSS/미디어 쿼리 나는 두려워. Javascript와 UA 스니핑을 사용하여 가능할 수도 있습니다. http://stackoverflow.com/questions/7400489/ipad-version-detection-in-javascript (이 게시물은 iPad 4보다 오래되었지만 같은 방식으로.) 왜 iPad 3과 4를 구별해야합니까? – HaukurHaf

+0

템플릿 동작이 2 개의 장치에서 다르고 내가 가지고있는 시간대가 코드화하기에 충분하지 않기 때문에 (비록 그럴 수 있겠지만) – Nasko

답변

1

당신은 어떤 차이를 얻을 수를 알 수있을 것이다 :

  • 미디어 쿼리는 same
  • 사용자 에이전트는 iPad 단어가 아닌 버전이 포함되어 있습니다. UA의 기타 정보는 iOS 또는 Safari 브라우저입니다. iPad3은 iOS6이 기본값이지만 in은 새 버전으로 업데이트 될 수 있습니다. SafariiOS 버전에 따라 다르므로 시스템 및 브라우저 정보가 부정확합니다.

그래서 iPadevent.accelerationiPad2 차이처럼 검지 만 javascript + iOS 기능이 있지만, iPad3iPad4의 기능 다르지 없다.

따라서 iPad3 만 감지 할 수 있습니다. 여기에 iPad3의 문제를 게시 할 수 있으며 문제를 해결하는 데 도움을 줄 수 있습니까?

하지만 : 당신이 WebView 구성 요소를 사용하는 경우

, 당신이 그것으로 할 수 있습니다. 당신은 iPad3에 대한 Objective-C:

NSString *machineName = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; 

machineNamesystemInfo.machine 문자열에서 검색 할 수 있습니다 iPad3,1, iPad3,2iPad3,3 있습니다. iPad4iPad3,4, iPad3,5iPad3,6 있습니다 (요청하지 않는 이유 :

그리고 WebView 당신이 예를 들어 WebResourceLoadDelegate를 사용하여 iPad3.css에 CSS 파일을 변경할 수 있습니다. 당신은 미디어 쿼리 또는 사용자 에이전트에 의한 차이를 얻을 수 있음을 확인

1

, 나는 WebGL을JS를 사용 iPad3iPad4 사이의 차이를 발견했습니다.

EXT_texture_filter_anisotropic 및 해당 확장 개체 MAX_TEXTURE_MAX_ANISOTROPY_EXT를 사용하면 텍스처에 사용할 수있는 최대 이방성을 반환 할 수 있습니다.

IPad3는 2은, iPad4 내가이 서로 다른 GPU로 인한 것 같다 (16)

를 돌려줍니다.그들은 같은 화면 해상도를 갖고 있기 때문에

Demo

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Anisotropy</title> 
</head> 

<body> 

    <p style="font-size: 100px;" id="anisotropy_val"></p> 

    <canvas id="webGLCanvas" width="400" height="400"> 
    </canvas> 

</body> 
<script> 

function check_max_anisotropy() { 

var canvas = document.getElementById("webGLCanvas"); 
var gl = canvas.getContext("experimental-webgl"); 


var ext = (
    gl.getExtension('EXT_texture_filter_anisotropic') || 
    gl.getExtension('MOZ_EXT_texture_filter_anisotropic') || 
    gl.getExtension('WEBKIT_EXT_texture_filter_anisotropic') 
); 

if (ext){ 
    var max = gl.getParameter(ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT); 
} 

document.getElementById("anisotropy_val").innerHTML = max; 

} 

check_max_anisotropy(); 

</script> 
</html> 
관련 문제