Résumé
Nous ne pouvons pas accéder à la caméra à partir d'une application Web d'écran d'accueil iOS11 (version publique) en utilisant WebRTC ou l'entrée de fichier, détails ci-dessous. Comment nos utilisateurs peuvent-ils continuer à accéder à la caméra s'il vous plaît?
Nous servons la page de l'application Web sur https.
Mise à jour, avril
La version publique d'iOS 11.3 semble avoir résolu le problème et l'accès à la caméra d'entrée de fichier fonctionne à nouveau!Mise à jour, mars
Comme les gens l'ont dit ici, les documents Apple indiquent que la fonction de caméra de l'application Web revient dans la version 11.3 avec les techniciens de service. C'est bien mais nous ne savons pas encore si nous voulons que tout le monde réinstalle à nouveau jusqu'à ce que nous puissions tester en profondeur sur 11.3GM.
Solution, novembre
Nous avons perdu espoir qu'Apple veuille résoudre ce problème et est allé de l'avant. Nous avons modifié notre application Web pour supprimer la fonction iOS «Ajouter à l'écran d'accueil» et demandé aux utilisateurs concernés de supprimer toute icône précédente de l'écran d'accueil.Mise à jour, 6 décembre
iOS 11.2 et iOS 11.1.2 ne corrigent pas.
Solutions de contournement, 21 septembre
Il semble que nous pourrions demander aux clients existants de l'application Web
- pas de mise à niveau vers iOS11 - bonne chance avec ça :)
- prendre des photos dans l'appareil photo iOS, puis les sélectionner à nouveau dans l'application Web
- attendez la prochaine version bêta d'ios
- réinstaller en tant que page Safari dans le navigateur (après avoir supprimé la logique ATHS)
- passer à Android
Entrée de fichier
Notre code de production actuel utilise une entrée de fichier qui fonctionne bien depuis des années avec iOS 10 et les versions antérieures. Sur iOS11, cela fonctionne comme un onglet Safari mais pas depuis l'application de l'écran d'accueil. Dans ce dernier cas, l'appareil photo est ouvert et seul un écran noir est affiché, il est donc inutilisable.
<meta name="apple-mobile-web-app-capable" content="yes">
...
<input type="file" accept="image/*">
WebRTC
Safari 11 sur iOS11 offre la capture multimédia WebRTC, ce qui est excellent.
Nous pouvons capturer une image de caméra sur un canevas sur une page Web normale sur ordinateur de bureau et mobile à l'aide de navigator.mediaDevices.getUserMedia selon l'exemple de code lié ici .
Lorsque nous ajoutons la page à l'écran d'accueil de l'iPad ou de l'iPhone, elle navigator.mediaDevices
devient undefined
inutilisable.
<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;