Мне интересно, можно ли определить, запущен ли браузер на iOS, подобно тому, как вы можете обнаружить особенности в Modernizr (хотя это, очевидно, обнаружение устройства, а не особенностей).
Обычно я бы отдал предпочтение определению функций, но мне нужно выяснить, является ли устройство iOS, из-за того, как они обрабатывают видео, согласно этому вопросу YouTube API не работает с iPad / iPhone / не-Flash устройствами
После 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