<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript">
(function () {
var canvas, gl, glRenderer, models,
devices = [
['a7', '640x1136', ['iPhone 5', 'iPhone 5s']],
['a7', '1536x2048', ['iPad Air', 'iPad Mini 2', 'iPad Mini 3']],
['a8', '640x1136', ['iPod touch (6th gen)']],
['a8', '750x1334', ['iPhone 6']],
['a8', '1242x2208', ['iPhone 6 Plus']],
['a8', '1536x2048', ['iPad Air 2', 'iPad Mini 4']],
['a9', '640x1136', ['iPhone SE']],
['a9', '750x1334', ['iPhone 6s']],
['a9', '1242x2208', ['iPhone 6s Plus']],
['a9x', '1536x2048', ['iPad Pro (1st gen 9.7-inch)']],
['a9x', '2048x2732', ['iPad Pro (1st gen 12.9-inch)']],
['a10', '750x1334', ['iPhone 7']],
['a10', '1242x2208', ['iPhone 7 Plus']],
['a10x', '1668x2224', ['iPad Pro (2th gen 10.5-inch)']],
['a10x', '2048x2732', ['iPad Pro (2th gen 12.9-inch)']],
['a11', '750x1334', ['iPhone 8']],
['a11', '1242x2208', ['iPhone 8 Plus']],
['a11', '1125x2436', ['iPhone X']],
['a12', '828x1792', ['iPhone Xr']],
['a12', '1125x2436', ['iPhone Xs']],
['a12', '1242x2688', ['iPhone Xs Max']],
['a12x', '1668x2388', ['iPad Pro (3rd gen 11-inch)']],
['a12x', '2048x2732', ['iPad Pro (3rd gen 12.9-inch)']]
];
function getCanvas() {
if (canvas == null) {
canvas = document.createElement('canvas');
}
return canvas;
}
function getGl() {
if (gl == null) {
gl = getCanvas().getContext('experimental-webgl');
}
return gl;
}
function getResolution() {
var ratio = window.devicePixelRatio || 1;
return (Math.min(screen.width, screen.height) * ratio)
+ 'x' + (Math.max(screen.width, screen.height) * ratio);
}
function getGlRenderer() {
if (glRenderer == null) {
debugInfo = getGl().getExtension('WEBGL_debug_renderer_info');
glRenderer = debugInfo == null ? 'unknown': getGl().getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
}
return glRenderer;
}
function getModels() {
if (models == null) {
var gpu = getGlRenderer(),
matches = gpu.match(/^apple\s+([_a-z0-9-]+)\s+gpu$/i),
res = getResolution();
models = ['unknown'];
if (matches) {
for (var i = 0; i < devices.length; i ++) {
var device = devices[i];
if (matches[1].toLowerCase() == device[0] && res == device[1]) {
models = device[2];
break;
}
}
}
}
return models;
}
if (window.MobileDevice == undefined) {
window.MobileDevice = {};
}
window.MobileDevice.getGlRenderer = getGlRenderer;
window.MobileDevice.getModels = getModels;
window.MobileDevice.getResolution = getResolution;
window.MobileDevice.is = function (match) {
var currentModels = getModels();
match = match.toLowerCase().replace(/\s+$/, '') + ' ';
for (var i = 0; i < currentModels.length; i ++) {
var model = currentModels[i].toLowerCase() + ' ';
if (0 === model.indexOf(math)) {
return true;
}
}
return false;
};
})();
</script>
<style>
</style>
</head>
<body>
<h1>GPU: <script>
document.write(MobileDevice.getGlRenderer());
</script>
</h1>
<h1>Resolution: <script>
document.write(MobileDevice.getResolution());
</script>
</h1>
<h1>Device Models: <script>
document.write(MobileDevice.getModels().join(' or '));
</script>
</h1>
</body>
</html>
网友回复