J'ai une URL qui fonctionne bien avec Safari sur iOS11 (Beta) L'audio/vidéo fonctionne bien. Mais lorsque je charge cette URL avec WKWebView, cela me donne une erreur "Navigateur incompatible" et lorsque je vérifie la version de mon navigateur dans WebKit, elle affiche "Navigateur basé sur WebKit sur iOS 11".
La question est donc vraiment: Apple a-t-il inclus ce changement dans le webkit WKWebview (qui devrait être le même que Safari) pour le développeur BETA d'iOS 11?
Depuis iOS11,
WebRTC est partiellement pris en charge dans WKWebView,
et entièrement pris en charge dans le navigateur Safari App.
Expliqué:
WebRTC dispose de trois API JavaScript principales:
Pour les applications exécutées à l'intérieur de l'application Safari, iOS11 +, toutes les API WebRTC sont prises en charge. Cela inclut getUserMedia
. Assurez-vous d'utiliser la bibliothèque adapter.js pour une meilleure compatibilité, car chaque navigateur - y compris Safari - utilise un nom différent pour son implémentation. Par exemple, dans Safari, c'est navigator.mediaDevices.getUserMedia()
.
Mais, lorsque vous utilisez WKWebView ou SFSafariViewController , c'est une autre histoire:
RTCPeerConnection
et RTCDataChannel
sont pris en charge et fonctionnent.getUserMedia
est pas encore pris en charge , pour "raisons de sécurité". Il est très probable ne sera pas disponible avant la prochaine version majeure du système d'exploitation , qui serait iOS 12 en septembre 2018.Vous pouvez toujours diffuser de la vidéo et du son à partir du stockage local ou consommer des médias en direct capturés par un pair. Espérons que dans iOS 12, nous verrons des progrès ...
J'ai fait un peu de fouille dans les sources WebKit la nuit dernière, et il semble que les trucs WebRTC/MediaCapture soient tous bloqués derrière une préférence qui n'est accessible que via une API privée. Il y avait également un commit qui mentionnait quelque chose à propos des applications devant gérer toute la configuration des autorisations A/V.
Dans tous les cas, le résultat est que getUserMedia ne fonctionne pas dans WKWebView, même sur iOS11 (bêta 4, au moins) :(
J'ai déposé un radar (rdar: // 33571214 et http://www.openradar.me/33571214 ) et j'encourage tout le monde à faire de même.
J'ai fait quelques tests avec iOS Beta 4 et il semble que même WKWebview ou UIWebview ne prennent pas en charge getUserMedia en tant qu'API WebRTC.
Quelqu'un peut-il confirmer cela?