无法通过 react-native-webview 访问相机
Posted
技术标签:
【中文标题】无法通过 react-native-webview 访问相机【英文标题】:Can't access to camera through react-native-webview 【发布时间】:2020-01-13 11:41:59 【问题描述】:我正在使用 react-native-webview
版本 4.0.2 。所以我有一个包含一个添加按钮的 web 视图,该按钮允许我们用相机拍照,但是当点击该按钮时,什么都没有显示,也没有显示相机权限。这是在 android 端,但在 ios 上运行良好(我可以看到权限和对相机的访问)。
在我的AndroidManifest.xml
我确实有:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
请问您有什么建议吗?
【问题讨论】:
查看此处发布的答案。谢谢***.com/a/64789794/1161998 【参考方案1】:尝试使用:
<uses-sdk
android:minSdkVersion="23"
android:targetSdkVersion="__APILEVEL__" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO"
android:maxSdkVersion="18" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"
android:maxSdkVersion="18" />
【讨论】:
我已经尝试了你的代码 ousama 但无法正常工作仍然没有相机权限 你能检查一下这个link吗?我希望你能从中有所收获。【参考方案2】:第一步: 在 AndroidManifest.xml 文件中使用它
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
第二步: 在 App.js 文件中授予多个权限
const granted = await PermissionsAndroid.requestMultiple([
PermissionsAndroid.PERMISSIONS.CAMERA,
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION,
]);
第三步: 在 webview 中使用这些属性
geolocationEnabled=true
mediaPlaybackRequiresUserAction=false
javascriptEnabled=true
【讨论】:
【参考方案3】:你也需要在 webview mediaPlaybackRequiresUserAction=false 中添加这个
【讨论】:
以上是关于无法通过 react-native-webview 访问相机的主要内容,如果未能解决你的问题,请参考以下文章
Android上的react-native-webview无法使用ERR_ACCESS_DENIED加载保存在缓存目录中的本地文件[重复]
react-native-webview:区分脚本引起的window.location和用户点击链接
WebView(react-native-webview)在 Expo SDK36 中获取错误代码 -1
有啥方法可以在 react-native-webview 中禁用 hapticFeedback