Определить, является ли устройство iOS

Мне интересно, можно ли определить, запущен ли браузер на iOS, подобно тому, как вы можете обнаружить особенности в Modernizr (хотя это, очевидно, обнаружение устройства, а не особенностей).

Обычно я бы отдал предпочтение определению функций, но мне нужно выяснить, является ли устройство iOS, из-за того, как они обрабатывают видео, согласно этому вопросу YouTube API не работает с iPad / iPhone / не-Flash устройствами

377
задан Community 23 May 2017 в 01:54
поделиться

1 ответ

После iOS 13 необходимо обнаружить устройства на iOS как это, так как iPad не будет обнаружен как устройства на iOS старыми путями (из-за новых "настольных" опций, включенных по умолчанию):

let isIOS = /iPad|iPhone|iPod/.test(navigator.platform)
|| (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)

первое условие для iOS < 13 или iPhone или iPad с отключенным режимом Desktop, вторым условием для iPadOS 13 в конфигурации по умолчанию, начиная с него само положение как Macintosh Intel, но на самом деле единственный Macintosh с мультисенсорным.

Скорее взлом, чем действительное решение, но работают надежно на меня

P.S. Как сказанный ранее, вероятно, необходимо добавить проверку IE

let isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&
!window.MSStream
10
ответ дан 22 November 2019 в 23:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: