#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, и приложение по-прежнему запрашивало разрешения и все такое.