【问题标题】:How to request microphone permissions with React Native Webview on Android Devices如何在 Android 设备上使用 React Native Webview 请求麦克风权限
【发布时间】:2019-08-20 23:54:04
【问题描述】:

我正在使用 React-Native 和 Expo 构建一个基于 Web 的应用程序。它使用 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" />

尽管如此,它仍然没有请求麦克风访问权限,因此网站无法加载(因为它无法检测到麦克风)。我还有其他方法可以访问 React Native 的 WebView 组件中的麦克风吗?非常感谢!

【问题讨论】:

  • 我们也遇到了同样的情况,你有没有针对上述情况找到解决方案。

标签: android reactjs react-native expo


【解决方案1】:

请参考以下链接。

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

它包含的组件只是实现了Android Webviews的onPermissionRequest()函数,因此要求用户在网络上授予对摄像头、麦克风等的权限。 ReactNative 的原生 Webview 没有实现此功能,因此,不会向用户询问任何内容(它只是失败并默默地拒绝权限)。

该链接中给出了示例代码。

【讨论】:

  • 如果我使用 Expo 来运行和测试我的应用程序,这会起作用吗?
【解决方案2】:

您可以使用expo-av 请求麦克风权限。我发现这很神奇,因为我想使用 react-native-voice 并且我必须弹出我的项目才能这样做。之后,我对 android 清单文件完全没有做任何事情,应用程序仍然请求权限和所有内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-04
    • 2021-01-26
    • 2022-01-14
    • 1970-01-01
    • 2013-06-09
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多