Я провел некоторое исследование, и этот вопрос возник, но не так, как я намереваюсь. Я создаю страницу для клиента с посадкой QR-кода, где можно загрузить приложение. Поэтому ему не нужно распечатывать 2 QR-кода на странице, я хотел бы определить текущую операционную систему (Apple / Android / Other [не поддерживается]) и изменить мои элементы на основе этого значения.
Я посмотрел на скрипт «detectmobilebrowsers», и он просто нацелен на то, чтобы сказать, является ли пользователь мобильным или нет, тогда как я хотел бы выяснить, в какой операционной системе работает пользователь, и предложить лучшую версию приложения.
Другие ответы, которые я нашел похожими на этот вопрос, казались либо устаревшими, либо ненадежными (не обнаруживается для браузеров на планшетах Android), поэтому я в поиске чего-то нового. Как мне этого добиться? (Предпочтительно использовать jQuery - Javascript - PHP в этом порядке).
источник
if( /Android/i.test(navigator.userAgent) ) { // some code.. }
, вернет true только для пользовательских агентов Android.Ответы:
Вы можете проверить строку агента пользователя:
источник
else if (userAgent.match(/Windows Phone/i)) { return 'WindowsPhone'; }
до Android еще, если для обнаружения Windows Phone. Пока, кажется, работает нормально.iOS
мы должны также проверить,!window.MSStream
чтобы IE11 не считалсяiOS
;-)Решение 1. Пользовательский агент нюхает
Для Android и iPhone:
Если вы хотите обнаружить все мобильные устройства, включая Blackberry и Windows Phone, вы можете использовать эту полную версию:
Минусы : Строки агента пользователя меняются и обновляются по мере появления новых телефонов и брендов с каждым днем. Поэтому вам нужно обновлять этот список, если вы хотите поддерживать все мобильные устройства.
Решение 2: библиотека JS для мобильного обнаружения
Вы можете использовать мобильную библиотеку JS для обнаружения для .
Минусы : эти функции обнаружения устройств на основе JavaScript могут работать ТОЛЬКО для смартфонов новейшего поколения, таких как устройства iPhone, Android и Palm WebOS. Эти функции обнаружения устройств могут НЕ работать для более старых смартфонов с плохой поддержкой JavaScript, включая старые устройства BlackBerry, PalmOS и Windows Mobile.
источник
Можно использовать navigator.platform, чтобы получить операционную систему, на которой установлен браузер.
источник
Эта проблема уже решена здесь: Каков наилучший способ обнаружения мобильного устройства в jQuery? ,
На принятом ответе они в основном проверяют, является ли это iPhone, iPod, устройство Android или что-то еще, чтобы вернуть истину. Просто оставьте те, которые вы хотите, например
if( /Android/i.test(navigator.userAgent) ) { // some code.. }
, вернет true только для пользовательских агентов Android.Тем не менее, пользовательские агенты не очень надежны, так как они могут быть изменены. Лучше всего разработать нечто универсальное для всех мобильных платформ.
источник
Вы также можете добиться этого с помощью пользовательского агента на php:
}
источник
Если вы используете React Js для вашего сайта, используйте https://www.npmjs.com/package/react-device-detect
источник
Вы также можете создавать динамические ссылки Firbase которые будут работать в соответствии с вашими требованиями. Он поддерживает несколько платформ. Эту ссылку можно создать как вручную, так и с помощью программирования. Затем вы можете вставить эту ссылку в QR-код.
Если целевое приложение установлено, ссылка перенаправит пользователя в приложение. Если он не установлен, он будет перенаправлен в Play Store / App store / любой другой настроенный веб-сайт.
источник
Для этого и других видов обнаружения клиентов я предлагаю эту библиотеку js: http://hictech.github.io/navJs/tester/index.html
Для вашего конкретного ответа используйте:
источник
Используя cordova-device-plugin, вы можете обнаружить
будет «Android» для Android и «Windows» для Windows. Работает на устройстве и при моделировании в браузере. Вот тост, который будет отображать значения устройства:
источник