我的应用出于webrtc的目的访问相机,并且可以正常工作。
我正在使用pwacompat
from Google Labs向我的Web应用添加pwa
功能。
以pwa
身份运行该应用程序时,一切正常,直到我访问相机。然后我收到这个console.log错误:
getUserMedia failedObject {type:“ error”,msg:“未定义不是对象(正在评估'navigat…”)}
getUserMedia失败类型:错误消息:未定义不是对象(正在评估“ navigator.mediaDevices.getUserMedia”)
我想念什么?
答案 0 :(得分:6)
修改
简而言之:由于Apple出于“安全性考虑”而故意阻止访问,因此将不允许PWA或本机Safari应用程序以外的iOS上正在iOS上使用的任何网站访问getUserMedia。这包括保存到主屏幕和/或在其他应用程序(例如Facebook)中查看的任何网站。相同的限制适用于Android,但是在Android上,应用程序开发人员可以请求相机权限并解决此问题。 (这意味着,如果您是网站开发人员,并且需要摄像头功能,则需要让Facebook等重建其应用程序,以允许在Android上使用此功能)。
在此处查看其错误跟踪器:http://www.openradar.me/33571214和https://forums.developer.apple.com/thread/88052
从基于Web的Safari体验到Native Android等。我在Web和Native中制作跨平台应用程序为生。 getUserMedia会遇到几个潜在的问题。要锻炼导致潜在问题的原因,您应该遵循此列表以创建成功的应用程序。
您的问题特别是1.,因为您没有成功查询API。但是,由于修复了1.之后,您将遇到2.和3。因此,getUserMedia中的MediaCapture应该会失败。
if (navigator && navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { return true; } else return false;
的后备返回false,如果理想情况下getUserMedia引发和错误应该相同。 '(location.protocol === 'https:') ? true : false;'
,以查看是否允许您成功发送MediaCapture请求以下是我用于平台支持的测试链接: https://github.com/marcusbelcher/wasm-asm-camera-webgl-test
在我的GitHub中,还有Android和React原生的getUserMedia解决方案