Как проверить, было ли отклонено разрешение на доступ к микрофону пользователем в FireFox - PullRequest
4 голосов
/ 02 декабря 2019

Есть ли способ узнать, отклонил или разрешил ли пользователь разрешение на использование медиа-устройств (например, микрофона, камеры) в 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.

Вариант использования

Мое приложение имеет функцию распознавания речи. Мне нужно показать «Предварительное разрешение всплывающее окно», прежде чем пользователь сталкивается с фактическим «Системное диалоговое окно» поиска доступа к микрофону. Идея этого «всплывающего окна предварительного разрешения» состоит в том, чтобы предоставить пользователю контекст, для которого приложению необходим доступ. Если пользователь уже предоставил / отклонил доступ, всплывающее окно предварительного разрешения не понадобилось бы. Поэтому мне нужно проверить состояние разрешений микрофона и показать всплывающее окно при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...