【发布时间】:2020-08-07 13:37:38
【问题描述】:
我试图在 ReactJS 项目中获取浏览器设置详细信息(相机、麦克风权限)。基于此,如果它被阻止,我将在 UI 中显示一些错误消息。我使用以下代码。
useEffect(()=>{
collectUserLogData();
},[]);
const collectUserLogData = () => {
navigator.getMedia =
navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia;
navigator.getMedia(
{ video: true },
() => {
setCamera(true);
console.log("Permission_", "camera ON");
},
() => {
console.log("Permission_", "Camera OFF");
}
);
navigator.getMedia(
{ audio: true },
() => {
setMic(true);
console.log("Permission_", "Mic ON");
},
() => {
console.log("Permission_", "Mic OFF");
}
);
navigator.geolocation.getCurrentPosition(
() => {
setLocation(true);
console.log("Permission_", "Geo ON");
},
() => {
console.log("Permission_", "Geo OFF");
}
);
};
这适用于 windows 和 android 浏览器,但不适用于 ios 浏览器。我没有在mac ios中测试它。 ios 浏览器中未显示弹出窗口。如何解决这个问题。
【问题讨论】:
-
帽子确实 setCamera(true);做?您是否尝试将视频元素的 srcObj 设置为验证相机是否正常工作的流?
标签: javascript reactjs webrtc mobile-safari getusermedia