Myślę, że znaleźliśmy regresję w iOS 13.2 / 13.3 w odniesieniu do PWA działających w trybie autonomicznym.
Ponieważ w systemie iOS PWA nie może uzyskać dostępu do getUserMedia (), polegamy na atrybucie przechwytywania w tagu wejściowym HTML5, aby umożliwić użytkownikowi zrobienie zdjęcia i wysłanie go na serwer.
Nasz kod wygląda następująco:
<div class="camera-upload">
<input type="file" class="hidden" name="uploadPhotoInput" accept="image/*" capture="environment" (change)="onTakePhoto($event)">
<button type="button" class="btn btn-primary">Take photo</button>
</div>
Kiedy uruchamiamy PWA w trybie autonomicznym na urządzeniach z iOS 13.1 lub starszym, wszystko działa zgodnie z oczekiwaniami. Jeśli uruchomimy PWA w trybie przeglądarki na Safari, wszystko działa niezależnie od wersji iOS.
Gdy uruchamiamy PWA na urządzeniach z iOS 13.2 lub 13.3, funkcja działa, dopóki nie umieścimy PWA w tle, a następnie ponownie na pierwszym planie. Po wysłaniu PWA do tła przechwytywanie uruchamia aparat, ale podgląd jest jutro czarny. Wszystkie elementy sterujące aparatu (lampa błyskowa itp.) Działają, ale nie są wykonywane zdjęcia.
Przeprowadzamy test z dołączonym rejestratorem konsoli XCode i wygląda na to, że nie można uruchomić programu AVCaptureSession po jednokrotnym umieszczeniu aplikacji w tle.
Oto ślad dzienników urządzenia:
Budujemy nasz PWA z Angular 8.
Czy ktoś widział coś takiego lub może podpowiedzieć?
źródło
Odpowiedzi:
@elbuild
https://bugs.webkit.org/show_bug.cgi?id=206219
Błąd został opublikowany tutaj. Zapraszam również do wzięcia udziału w wysyłaniu postów, aby zyskać przyczepność, ja też zrobię to samo
źródło
Errr ... nie. 13.4 nadal tak jest, przepraszam.
Po prostu mówię użytkownikom, że jeśli to dostaną, powinni przerzucić aplikację, aby ją zamknąć (zamiast wracać do domu). Złe obejście, ale miejmy nadzieję, że pewnego dnia pojawi się prawdziwa poprawka.
źródło
Wreszcie rozwiązano to w iOS13.4
źródło