Кто-нибудь знает, почему php и jscript выводят разные пользовательские агенты?
А также, какой из них правильный?
PHP
<?php print_r($_SERVER['HTTP_USER_AGENT']); ?>
Выход:
Mozilla / 5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident / 7.0; Touch; rv: 11.0; IEMobile / 11.0; Microsoft; Lumia535), как iPhone OS7_0_3 Mac OS X AppleWebKit / 537 (KHTML, как Gecko) Mobile Safari / 537)
JScript
alert(navigator.userAgent);
Выход:
Mozilla / 5.0 (совместимый; MSIE 9.0; ОС Windows Phone 7.5; Trident / 5.0; IEMobile / 9.0; Microsoft; Lumia 535
На нашем портале мы обнаруживаем вызывающее устройство через UAS. Я обнаружил некоторые проблемы с WP 8.1 Строка агента пользователя.
Для WP с IE, установленным на мобильный через Интернет, я получаю «значимое» UAS:
Mozilla / 5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident / 7.0;
Нажмите; с.в.: 11,0; IEMobile / 11,0; NOKIA; Lumia 930) нравится iPhone OS 7_0_3
Mac OS X AppleWebKit / 537 (KHTML, как Gecko) Mobile Safari / 537
Таким образом, если IE mobile установлен на «Рабочий стол» или портал вызывается через Интранет, я получаю:
Mozilla / 5.0 (Windows NT 6.2; ARM; Trident / 7.0; Touch; rv: 11.0;
WPDesktop; Lumia 930) нравится геккон
Итак, эффект был в том, что наш портал показал мобильную страницу для iOS, а не мобильную страницу для WP.
Обходной путь должен был запросить UAS для «Windows Phone» перед запросом для iPhone.
Похоже, что MS пытается таким образом быть обнаруженным как мобильное устройство (если страница запрашивает только iOS и Android-устройства), что нехорошо.
Поэтому не существует «одного» правильного UAC, нужно поддерживать более одного …
Других решений пока нет …