窗边的小豆豆
窗边的小豆豆
  • 发布:2023-07-17 10:36
  • 更新:2024-08-15 10:49
  • 阅读:887

【报Bug】ios webview内嵌H5页面,调用navigator.mediaDevices.getUserMedia,都要授权摄像头,明明app已经授过权了

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 10

HBuilderX类型: 正式

HBuilderX版本号: 3.8.4

手机系统: iOS

手机系统版本号: iOS 16

手机厂商: 苹果

手机机型: iphone 11 pro max

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

if(navigator.mediaDevices.getUserMedia){
navigator.mediaDevices.getUserMedia(constrains).then(success).catch(error);//最新标准API
}else if(navigator.webkitGetUserMedia){
navigator.webkitGetUserMedia(constrains).then(success).catch(error);//webkit内核浏览器
}else if(navigator.mozGetUserMedia){
navagator.mozGetUserMedia(constrains).then(success).catch(error);//Firefox浏览器
}else if(navigator.getUserMedia){
navigator.getUserMedia(constrains).then(success).catch(error);//旧版API
}else{
this.errortext = "你的浏览器不支持访问用户媒体设备";
}

操作步骤:

不管app有没有授权,每次进入h5都会弹窗授权

预期结果:

只需要app授权一次,h5不要每次都弹窗授权

实际结果:

app授权一次,h5每次都弹窗授权

bug描述:

打包的ios内,内嵌H5页面,h5页面中调用navigator.mediaDevices.getUserMedia进行摄像,首次点击开始拍摄,app 弹窗授权摄像头,同意之后h5还会再次弹窗授权摄像头,之后每次进来,H5都会弹窗授权摄像头

2023-07-17 10:36 负责人:无 分享
已邀请:
昭昭L

昭昭L - 开心就好

我使用位置也是,app授权了位置,进h5的时候还会有一次,他们的权限机制是独立的我就没管了

  • 窗边的小豆豆 (作者)

    一个按钮连调两次太尴尬了。。。

    2023-07-17 10:56

昭昭L

昭昭L - 开心就好

我的是异步的没有连续调用所以用户体验能接受

  • 窗边的小豆豆 (作者)

    navigator.mediaDevices.getUserMedia(constrains).then(success).catch(error); 这一条会拉起两个授权,异步不了

    2023-07-17 12:56

昭昭L

昭昭L - 开心就好

我的操作是异步的,用户进来会弹一个app的授权,web是个子页面,如果用户点了才会再弹,不会进一个页面连续弹

smileys

smileys - 90后

有解决办法了吗?

1***@qq.com

1***@qq.com - 瓦尔特热热热沃尔

蹲一下解决办法

hosiks

hosiks

问题解决了吗?webview页面每次都要授权的确蛋疼

卡卡LL

卡卡LL - 90后it男

请问官方,这个问题如何解决了,webrtc开发的视频聊天,每次打开页面,都有授权提示,用户体验太不友好了

  • hosiks

    老实点原生插件吧,我尝试过解决,没得办法。

    2024-08-16 17:54

  • 卡卡LL

    回复 hosiks: 唉,官方可能不给维护了吧,目前也改变只能用原生插件了

    2024-08-17 16:56

  • hosiks

    回复 卡卡LL: 反正我是用原生插件了,你可以看看插件市场的goeasy,还可以

    2024-08-20 11:25

  • 卡卡LL

    回复 hosiks: 好的,谢谢

    2024-08-21 11:18

要回复问题请先登录注册