Я пытался получить сведения о настройках браузера (камера, разрешение микрофона) в проекте ReactJS. Исходя из этого, я покажу сообщение об ошибке в пользовательском интерфейсе, если оно заблокировано. Я использую следующий код.
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. Как это исправить.