Zusammenfassung
Wir können weder über WebRTC noch über die Dateieingabe über eine Web-App für den iOS11-Startbildschirm auf die Kamera zugreifen (siehe unten). Wie können unsere Benutzer weiterhin auf die Kamera zugreifen?
Wir bedienen die Web-App-Seite über https.
Update, April
Die öffentliche Version von iOS 11.3 scheint das Problem behoben zu haben und der Zugriff auf die Dateieingabekamera funktioniert wieder!Update, März
Wie die Leute hier gesagt haben, empfehlen die Apple-Dokumente, dass die Web-App-Kamerafunktion in 11.3 zusammen mit den Servicemitarbeitern zurückkehrt. Das ist gut, aber wir sind uns noch nicht sicher, ob wir möchten, dass alle es erneut installieren, bis wir gründlich mit 11.3GM testen können.
Lösung, November
Wir haben die Hoffnung verloren, dass Apple dies beheben will, und sind weitergekommen. Unsere Web-App wurde geändert, um die iOS-Funktion "Zum Startbildschirm hinzufügen" zu entfernen, und die betroffenen Benutzer wurden aufgefordert, alle vorherigen Startbildschirmsymbole zu entfernen.Update, 6. Dezember
iOS 11.2 und iOS 11.1.2 beheben nicht.
Problemumgehungen, 21. September
Anscheinend könnten wir bestehende Kunden der Web-App fragen
- kein Upgrade auf iOS11 - viel Glück damit :)
- Nehmen Sie Fotos mit der iOS-Kamera auf und wählen Sie sie dann wieder in der Web-App aus
- warte auf die nächste ios beta
- Neuinstallation als Safari-In-Browser-Seite (nachdem wir die ATHS-Logik entfernt haben)
- Wechseln Sie zu Android
Dateieingabe
Unser aktueller Produktionscode verwendet eine Dateieingabe, die seit Jahren mit iOS 10 und älter funktioniert. Unter iOS11 funktioniert es als Safari-Registerkarte, jedoch nicht über die Startbildschirm-App. Im letzteren Fall wird die Kamera geöffnet und nur ein schwarzer Bildschirm angezeigt, daher ist sie unbrauchbar.
<meta name="apple-mobile-web-app-capable" content="yes">
...
<input type="file" accept="image/*">
WebRTC
Safari 11 unter iOS11 bietet eine großartige WebRTC-Medienerfassung .
Mit navigator.mediaDevices.getUserMedia können wir ein Kamerabild auf einer normalen Webseite auf Desktop und Handy auf Leinwand aufzeichnen, indem wir den hier verlinkten Beispielcode verwenden .
Wenn wir die Seite zum iPad- oder iPhone-Startbildschirm hinzufügen, navigator.mediaDevices
wird sie undefined
unbrauchbar.
<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;