Единственный способ найти это - взлом, в котором я:
Используемые css media запросы для обнаружения телефонов с использованием max-device-width
Установить изменение стиля на этой основе - я изменил цвет тела с # 000000 на # 000001
Используйте OnLoad для вызова Javascript, чтобы проверить цвет тела.
Перенаправление на этой основе. (В моем собственном случае я фактически использовал вызов window.confirm, чтобы предложить пользователю выбор вместо принудительного перенаправления).
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Phone test</title>
<meta name="viewport" content="width=device-width">
<style type="text/css">
body
{ color: rgb(0, 0, 0);}
@media screen and (max-device-width:600px), screen and (max-width:600px)
{
body{ color: rgb(0, 0, 1);}
}
</style>
<script type="text/javascript">
<!--
function doPhoneCheck()
{
var col;
if(document.body.currentStyle)
{
col = document.body.currentStyle.color; // IE
}
else
{
col = getComputedStyle(document.body).getPropertyValue("color");
}
if(col =="rgb(0, 0, 1)")
{
window.location.href="http://www.apple.com/";
}
}
//-->
</script>
Он обнаруживает все iPhone до 6+, а также телефоны Android и Windows, которые я тестировал. Он дискриминирует все текущие iPad и ноутбуки и настольные компьютеры, которые я пробовал.
NB
(1) Для цвета вы должны использовать rgb и оставить пробелы в точности как написано.
(2) Я обнаружил, что подобный код не будет определять цвет фона тела по неизвестной причине.
(3) Ключом к обнаружению стиля css является использование getComputedStyle () (или currentStyle для IE) вместо getStyle ().
(4) Хотя изменение цвета тела незаметно, его можно переопределить, указав цвета для всех ваших классов CSS и т. Д.