Podsumowanie
Nie możemy uzyskać dostępu do kamery z aplikacji internetowej na ekranie głównym systemu iOS11 (wersja publiczna) za pomocą WebRTC lub pliku wejściowego, szczegóły poniżej. W jaki sposób nasi użytkownicy mogą nadal uzyskiwać dostęp do kamery?
Obsługujemy stronę aplikacji internetowej przez https.
Aktualizacja, kwiecień
Wydaje się, że publiczne wydanie iOS 11.3 rozwiązało problem, a dostęp do kamery do wprowadzania plików znów działa!Aktualizacja, marzec
Jak powiedzieli ludzie tutaj, dokumentacja Apple zaleca, aby funkcja kamery aplikacji internetowej powróciła w wersji 11.3 wraz z pracownikami usług. To dobrze, ale nie jesteśmy jeszcze pewni, czy chcemy, aby wszyscy ponownie instalowali ponownie, dopóki nie będziemy mogli dokładnie przetestować 11.3GM.
Rozwiązanie, listopad
Straciliśmy nadzieję, że Apple będzie chciał to naprawić i ruszyliśmy do przodu. Zmodyfikowaliśmy naszą aplikację internetową w celu usunięcia funkcji „Dodaj do ekranu głównego” systemu iOS i poprosiliśmy użytkowników, których dotyczy problem, o usunięcie wszelkich poprzednich ikon z ekranu głównego.Aktualizacja, 6 grudnia
iOS 11.2 i iOS 11.1.2 nie naprawiają.
Obejścia, 21 września
Wygląda na to, że moglibyśmy zapytać obecnych klientów o aplikację internetową
- nie aktualizuj do iOS11 - powodzenia :)
- rób zdjęcia aparatem iOS, a następnie wybierz je z powrotem w aplikacji internetowej
- poczekaj na następną wersję beta ios
- zainstaluj ponownie jako stronę Safari w przeglądarce (po usunięciu logiki ATHS)
- przełącz się na Androida
Plik wejściowy
Nasz obecny kod produkcyjny wykorzystuje dane wejściowe pliku, które od lat działają dobrze z iOS 10 i starszymi. W systemie iOS11 działa jako karta Safari, ale nie w aplikacji na ekranie głównym. W tym drugim przypadku kamera jest otwarta i wyświetlany jest tylko czarny ekran, przez co nie nadaje się do użytku.
<meta name="apple-mobile-web-app-capable" content="yes">
...
<input type="file" accept="image/*">
WebRTC
Safari 11 na iOS11 oferuje przechwytywanie multimediów WebRTC, co jest świetne.
Możemy przechwycić obraz z kamery do kanwy na normalnej stronie internetowej na komputerze stacjonarnym i mobilnym za pomocą navigator.mediaDevices.getUserMedia zgodnie z przykładowym kodem, do którego link znajduje się tutaj .
Kiedy dodamy stronę do ekranu głównego iPada lub iPhone'a, navigator.mediaDevices
staje się undefined
bezużyteczna.
<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;