窗边的小豆豆
窗边的小豆豆
  • 发布:2023-07-17 10:36
  • 更新:2023-11-24 11:29
  • 阅读:409

【报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

蹲一下解决办法

要回复问题请先登录注册