Sommario
Non è possibile accedere alla videocamera da un'app Web della schermata iniziale iOS11 (versione pubblica) utilizzando WebRTC o l'input del file, i dettagli di seguito. Come possono i nostri utenti continuare ad accedere alla videocamera per favore?
Stiamo servendo la pagina dell'app Web su https.
Aggiornamento, aprile
La versione pubblica di iOS 11.3 sembra aver risolto il problema e l'accesso alla fotocamera per l'input di file funziona di nuovo!Aggiornamento, marzo
Come la gente qui ha detto che i documenti di Apple suggeriscono che la funzione della videocamera per app Web tornerà in 11.3 insieme ai lavoratori dell'assistenza. Questo è buono ma non siamo ancora sicuri se vogliamo che tutti si reinstallino di nuovo fino a quando non saremo in grado di testare a fondo su 11.3GM.
Soluzione, novembre
Abbiamo perso la speranza che Apple voglia risolvere questo problema e siamo andati avanti. Modificata la nostra app Web per rimuovere la funzione "Aggiungi alla schermata principale" di iOS e chiesto agli utenti interessati di rimuovere qualsiasi icona della schermata principale precedente.Aggiornamento, 6 dicembre
iOS 11.2 e iOS 11.1.2 non si risolvono.
Soluzioni alternative, 21 settembre
Sembra che potremmo chiedere ai clienti esistenti dell'app Web
- non aggiornare a iOS11 - buona fortuna :)
- scattare foto con la fotocamera iOS e selezionarle nuovamente nell'app Web
- attendere la prossima beta di iOS
- reinstallare come pagina di Safari nel browser (dopo aver rimosso la logica ATHS)
- passa ad Android
File Input
Il nostro attuale codice di produzione utilizza un input di file che ha funzionato bene per anni con iOS 10 e versioni precedenti. Su iOS11 funziona come una scheda Safari ma non dall'app della schermata principale. In quest'ultimo caso la fotocamera viene aperta e viene visualizzata solo una schermata nera, quindi è inutilizzabile.
<meta name="apple-mobile-web-app-capable" content="yes">
...
<input type="file" accept="image/*">
WebRTC
Safari 11 su iOS11 offre l'acquisizione multimediale WebRTC che è eccezionale.
Siamo in grado di catturare un'immagine della telecamera su tela su una normale pagina Web su desktop e dispositivo mobile utilizzando navigator.mediaDevices.getUserMedia secondo il codice di esempio collegato qui .
Quando aggiungiamo la pagina alla schermata principale di iPad o iPhone, navigator.mediaDevices
diventa undefined
inutilizzabile.
<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;