Как запросить разрешения микрофона с помощью React Native Webview на устройствах Android

#android #reactjs #react-native #expo

#Android #reactjs #react-native #выставка

Вопрос:

Я создаю веб-приложение с использованием React-Native и Expo. Он использует WebView для отображения веб-сайта, который будет записывать через микрофон. Однако я не могу найти способ для приложения запросить доступ к микрофону. Если я зайду на этот веб-сайт через браузер, он запросит доступ к микрофону.

Я попытался добавить разрешения в файл AndroidManifest.

  <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.MICROPHONE" />
<uses-feature android:name="android.hardware.microphone" android:required="true" />
  

Несмотря на все это, он по-прежнему не запрашивает доступ к микрофону, и в результате веб-сайт не загружается (поскольку он не может обнаружить микрофон). Есть ли какой-либо другой способ для меня получить доступ к микрофону в компоненте WebView React Native? Огромное спасибо!

Комментарии:

1. Мы также находимся в такой же ситуации, нашли ли вы какое-либо решение для вышеупомянутого сценария.

Ответ №1:

Пожалуйста, перейдите по ссылке ниже.

https://github.com/Unapedra/rn-android-permission-webview

Он содержит компонент, который просто реализует функцию onPermissionRequest () веб-просмотра Android, поэтому пользователю предлагается предоставить разрешение на камеру, микрофон и т.д. В Интернете. В собственных веб-представлениях для ReactNative эта функция не реализована, и, таким образом, у пользователя ничего не запрашивается (он просто терпит неудачу и молча отказывает в разрешении).

Пример кода приведен по этой ссылке.

Комментарии:

1. Сработает ли это, если я использую Expo для запуска и тестирования своего приложения?

Ответ №2:

Вы можете использовать expo-av для запроса разрешений микрофона. Я нашел это удивительным, потому что я хотел использовать react-native-voice, и мне пришлось удалить свой проект, чтобы сделать это. После этого я абсолютно ничего не сделал с файлом манифеста Android, и приложение по-прежнему запрашивало разрешения и все такое.