Підсумок
Ми не можемо отримати доступ до камери через веб-додаток домашнього екрану iOS11 (публічний випуск) за допомогою WebRTC або файлового вводу, детальніше нижче. Як наші користувачі можуть надалі отримувати доступ до камери?
Ми обслуговуємо сторінку веб-програми через https.
Оновлення, квітень
Публічний випуск iOS 11.3, схоже, вирішив проблему, і доступ до камери вводу файлів знову працює!Оновлення, березень
Як тут казали люди, документи Apple радять, що функція камери веб-додатків повертається в 11.3 разом із сервісними працівниками. Це добре, але ми ще не впевнені, чи хочемо ми знову перевстановити, поки ми не зможемо всебічно протестувати на 11.3GM.
Рішення, листопад
Ми втратили надію, що Apple захоче це виправити і рухається вперед. Змінив наш веб-додаток, щоб видалити функцію "Додати на головний екран" iOS і попросив постраждалих користувачів видалити будь-який попередній значок домашнього екрана.Оновлення, 6 грудня
iOS 11.2 та iOS 11.1.2 не виправляються.
Обхідні шляхи, 21 вересня
Здається, ми можемо запитати існуючих клієнтів веб-програми
- не оновлення до iOS11 - удачі з цим :)
- фотографуйте в камері iOS, а потім виберіть їх назад у веб-програмі
- чекайте наступної бета-версії ios
- перевстановити як сторінку веб-переглядача Safari (після того, як ми видалимо логіку ATHS)
- перейти на Android
Введення файлів
У нашому поточному виробничому коді використовується введення файлу, який працював чудово протягом багатьох років із iOS 10 та старшими. На iOS11 він працює як вкладка Safari, але не з додатка головного екрану. В останньому випадку камера відкривається і відображається лише чорний екран, отже, вона непридатна.
<meta name="apple-mobile-web-app-capable" content="yes">
...
<input type="file" accept="image/*">
WebRTC
Safari 11 на iOS11 пропонує захоплення засобів масової інформації WebRTC, що чудово.
Ми можемо зафіксувати зображення камери на полотні на звичайній веб-сторінці на робочому столі та мобільному пристрої за допомогою navigator.mediaDevices.getUserMedia за зразком коду, зв'язаним тут .
Коли ми додаємо сторінку на головний екран iPad або iPhone, вона navigator.mediaDevices
стає undefined
і непридатною.
<meta name="apple-mobile-web-app-capable" content="yes">
...
// for some reason safari on mac can debug ios safari page but not ios home screen web apps
var d = 'typeof navigator : ' + typeof navigator; //object
d += 'typeof navigator.mediaDevices : ' + typeof navigator.mediaDevices; // undefined
// try alternates
d += 'typeof navigator.getUserMedia : ' + typeof navigator.getUserMedia; // undefined
d += 'typeof navigator.webkitGetUserMedia : ' + typeof navigator.webkitGetUserMedia; // undefined
status1.innerHTML = d;