摘要
我们无法使用WebRTC或文件输入从iOS11(公开发布)主屏Web应用程序访问摄像头,详细信息如下.请问我们的用户如何才能继续访问摄像头?
我们通过https提供web应用程序页面.
更新,4月
个
iOS11.3的公开版本似乎已经解决了这个问题,文件输入摄像头访问功能又开始工作了!
更新,3月
个
正如这里的人所说,苹果公司的文档建议网络应用程序摄像头功能将在11.3版本中与服务人员一起回归.这很好,但我们还不确定是否希望每个人都重新安装,直到我们可以彻底测试11.3GM.
解决方案,11月
更新,12月6日
个
iOS 11.2和iOS 11.1.2无法修复.
解决方法,9月21日
似乎我们可以向现有的网络应用客户询问
- 不升级到iOS11-祝您好运:)
- 在iOS相机中拍摄照片,然后在Web应用程序中重新 Select 这些照片
- 等待下一个ios测试版
- 作为Safari浏览器内页面重新安装(在我们删除ATHS逻辑之后)
- 切换到Android
文件输入
我们当前的生产代码使用的是文件输入,在iOS10及更早的版本上已经运行多年.在iOS11上,它可以作为Safari选项卡使用,但不能从主屏幕应用程序中使用.在后一种情况下,相机打开,只显示一个黑屏,因此无法使用.
<meta name="apple-mobile-web-app-capable" content="yes">
...
<input type="file" accept="image/*">
WebRTC
iOS11上的Safari11提供WebRTC media capture美元,这很棒.
我们可以使用Navigator.mediaDevices.getUserMedia per the sample code linked here将相机图像捕获到桌面和移动设备上的普通网页上.
当我们将页面添加到iPad或iPhone主屏幕时,navigator.mediaDevices
变成了undefined
,无法使用.
<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;