Есть ли способ узнать, отклонил или разрешил ли пользователь разрешение на использование медиа-устройств (например, микрофона, камеры) в Firefox ?. В Chrome я могу проверить это с navigator.permissions.query, но это не работает в Firefox с «TypeError».
navigator.permissions.query({name:"microphone"}).then(function(promise) {
if ( promise && promise.state ) {
console.log(promise.state); //"granted", "prompt" or "rejected"
}
});
//in Firefox, It throws the error "TypeError: 'name' member of PermissionDescriptor '' is not a valid value for enumeration PermissionName"
Я не мог поймать вышеупомянутую ошибку с блоком try catch по какой-то причине. Поэтому я хотел бы знать, почему я не могу перехватить эту ошибку в блоке try catch и существует ли альтернативный подход. Спасибо в advacne.
Вариант использования
Мое приложение имеет функцию распознавания речи. Мне нужно показать «Предварительное разрешение всплывающее окно», прежде чем пользователь сталкивается с фактическим «Системное диалоговое окно» поиска доступа к микрофону. Идея этого «всплывающего окна предварительного разрешения» состоит в том, чтобы предоставить пользователю контекст, для которого приложению необходим доступ. Если пользователь уже предоставил / отклонил доступ, всплывающее окно предварительного разрешения не понадобилось бы. Поэтому мне нужно проверить состояние разрешений микрофона и показать всплывающее окно при необходимости.