涛tao
涛tao
  • 发布:2023-06-25 10:20
  • 更新:2025-04-01 18:24
  • 阅读:3811

在app中 使用webview跳转到第三方h5,在h5中调用摄像头及相机 无法获取相机权限

分类:uni-app

这个h5在浏览器中打开是可以获取到相机权限的,

使用web-view的话,会出现无法获取相机权限。
只能去app的设置中,找到相机,把权限开起来。

怎么解决这个问题呢?安卓app打包时是不是还要在上某个权限才行?

 /* android打包配置 - 目前已经有添加如下配置 */  
"permissions" : [  
                    "<uses-feature android:name=\"android.hardware.camera\"/>",  
                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",  
                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",  
                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",  
                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",  
                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",  
                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",  
                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",  
                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",  
                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",  
                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",  
                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",  
                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",  
                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",  
                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",  
                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",  
                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>"  
],
2023-06-25 10:20 负责人:无 分享
已邀请:
BoredApe

BoredApe - 有问题就会有答案。

plus.android.requestPermissions(['android.permission.CAMERA'], function(e) {  
                if (e.deniedAlways.length > 0) {  
                    console.log('Always Denied!!! ' + e.deniedAlways.toString());  
                }  
                if (e.deniedPresent.length > 0) {  
                    console.log('Present Denied!!! ' + e.deniedPresent.toString());  
                }  
                if (e.granted.length > 0) {  
                    console.log('Granted!!! ' + e.granted.toString());  
                }  
            }, function(e) {  
                console.log('Request Permissions error:' + JSON.stringify(e));  
            });

使用requestPermissions主动触发权限申请

  • 涛tao (作者)

    这个只能在app上调用的吧? 在h5里有没办法呀?

    我想在获取相机操作的上一部才去查看是否有权限,可以怎么做

    2023-06-25 10:32

  • BoredApe

    回复 1***@qq.com: 安卓中app有相机权限,h5就可以用了。

    2023-06-25 10:33

  • BoredApe

    你可以直接将这个方法写到h5中,去调用。

    2023-06-25 10:34

  • 涛tao (作者)

    回复 BoredApe: h5中会提示:ReferenceError: plus is not defined 怎么解决

    2023-06-25 11:01

  • BoredApe

    回复 1***@qq.com: plusready之后再调用。或者点击按钮的时候再调用。

    2023-06-25 11:03

  • 涛tao (作者)

    回复 BoredApe: 点击按钮之后调用也是不行呀。 这个plus对象 不是app端才能用么

    2023-06-25 11:07

  • BoredApe

    回复 1***@qq.com: 通过webview打开的h5中也是有plus环境的。

    2023-06-25 11:09

  • 涛tao (作者)

    回复 BoredApe: 噢噢,原来这样子。谢谢了。 我是直接在浏览器上打开调试的 难怪。。

    2023-06-25 11:10

  • 2***@qq.com

    回复 1***@qq.com: 解决了吗

    2023-07-07 15:55

  • 涛tao (作者)

    回复 2***@qq.com: 解决了

    2023-07-21 09:17

  • 7***@qq.com

    回复 BoredApe: 我碰到了一个新问题:我也是使用app的webview嵌入h5,在app已授权相机和相册权限,真机调试都ok,但打包apk安装后调用摄像头直接闪退,我尝试拒绝授权,进入摄像头页面会提示未授权但不会闪退,请问是什么问题呢?我的手机型号是redmi 10X Pro

    2023-07-31 16:57

  • 芝士就是力量

    回复 1***@qq.com: 大佬,请问怎么解决的啊?

    2024-07-02 11:12

BoredApe

BoredApe - 有问题就会有答案。

  • 1***@qq.com

    ios中怎么解决?也是用webview跳转到第三方h5,在h5中调用摄像头及相机的

    2024-12-26 11:29

7***@qq.com

7***@qq.com

我碰到了一个新问题:我也是使用app的webview嵌入h5,在app已授权相机和相册权限,真机调试都ok,但打包apk安装后调用摄像头直接闪退,我尝试拒绝授权,进入摄像头页面会提示未授权但不会闪退,请问是什么问题呢?我的手机型号是redmi 10X Pro

  • 二饭

    是否解决了呢?

    2024-12-13 12:44

z***@163.com

z***@163.com

官方现在都没解决,像那种H5都是第三方的又没法改 只能拦截原先的摄像头调用,然后换成uniapp的调用方式

要回复问题请先登录注册