Как да открием iPad 4 от JavaScript?

Има начини за откриване

  • iPad 1
  • iPad 2
  • iPad 3
  • iPad Air

Как да открием iPad 4 поколение от JavaScript?


person Vitali Kotik    schedule 13.01.2014    source източник


Отговори (2)


Чрез използване на разширение WEBGL_debug_renderer_info, което е част от WebGL API , вие можете да извлечете доставчика на графичния процесор и името на рендерера.

Комбинирайки това с размерите на екрана на устройството, можете точно да определите коя е версията.

 // iPad model checks.
function getiPadModel(){
    // Create a canvas element which can be used to retreive information about the GPU.
    var canvas = document.createElement("canvas");
    if (canvas) {
        var context = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
        if (context) {
            var info = context.getExtension("WEBGL_debug_renderer_info");
            if (info) {
                var renderer = context.getParameter(info.UNMASKED_RENDERER_WEBGL);
            }
        }
    }    

if(window.screen.height / window.screen.width == 1024 / 768) {
    // iPad, iPad 2, iPad Mini
    if (window.devicePixelRatio == 1) {
        switch(renderer) {
            default:
                return "iPad, iPad 2, iPad Mini";
            case "PowerVR SGX 535":
                return "iPad"
            case "PowerVR SGX 543":
                return "iPad 2 or Mini";
        }
    // iPad 3, 4, 5, Mini 2, Mini 3, Mini 4, Air, Air 2
    } else {
        switch(renderer) {
            default:
                return "iPad 3, 4, 5, Mini 2, Mini 3, Mini 4, Air, Air 2";
            case "PowerVR SGX 543":
                return "iPad 3";
            case "PowerVR SGX 554":
                return "iPad 4";
            case "Apple A7 GPU":
                return "iPad Air, Mini 2, Mini 3";
            case "Apple A8X GPU":
                return "iPad Air 2";
            case "Apple A8 GPU":
                return "iPad Mini 4";
            case "Apple A9 GPU":
                return "iPad 5, Pro 9.7";
        }
    }
// iPad Pro 10.5
} else if (window.screen.height / window.screen.width == 1112 / 834) {
    return "iPad Pro 10.5";
// iPad Pro 12.9, Pro 12.9 (2nd Gen)
} else if (window.screen.height / window.screen.width == 1366/ 1024) {
    switch(renderer) {
        default:
            return "iPad Pro 12.9, Pro 12.9 (2nd Gen)";
        case "Apple A10X GPU":
            return "iPad Pro 12.9 (2nd Gen)";
        case "Apple A9 GPU":
            return "iPad Pro 12.9";
    }
} else {
    return "Not an iPad";
}
}
person Josh Grew    schedule 12.03.2018

може би синтактичен анализ на потребителски агент с помощта на javascript инструкция "navigator.userAgent".

вижте също тази публикация: откриване на версия на iPad в JavaScript

person Luca Iaco    schedule 13.01.2014
comment
Не помага. UserAgent съдържа версия на ОС - person Vitali Kotik; 13.01.2014
comment
Ops, четейки тази публикация изглежда, че бихте могли да идентифицирате разликата между iPad 1 и най-новия, като използвате event.acceleration и window.devicePixelRatio, за да разграничите iPad 2 и iPad 3. Така че потребителският агент не е толкова надежден, колкото си мислех... - person Luca Iaco; 13.01.2014