权限设置常见问题

优质
小牛编辑
128浏览
2023-12-01

1. 小程序原生页面要获取权限时该使用哪些接口?

iOS端

  • 相机权限:二维码扫描接口(scanCode)、选择图片接口(chooseImage)拍照、选择视频接口(chooseVideo)录像;
  • 相册权限:选择图片接口(chooseImage)读取相册图片、选择视频接口(chooseVideo)读取相册视频;
  • 麦克风权限:录音接口(startRecord);
  • 地理位置权限:获取地理位置接口(getLocation)、选择地理位置接口(chooseLocation);

Android端

  • 相机权限:二维码扫描接口(scanCode)、选择图片接口(chooseImage)拍照、选择视频接口(chooseVideo)录像;
  • 麦克风权限:录音接口(startRecord);
  • 存储权限:选择文件接口(chooseMessageFile)、选择图片接口(chooseImage)从相册选择、选择视频接口(chooseVideo)从相册选择;
  • 地理位置权限:获取地理位置接口(getLocation)、选择地理位置接口(chooseLocation);

详细接口文档

2. 小程序中的H5页面要获取权限时该使用哪些接口?

iOS端

  • 相机权限:选择图片接口(ft.miniProgram.chooseImage)拍照
  • 相册权限:选择图片接口(ft.miniProgram.chooseImage)从相册选择

Android端

  • 相机权限:选择图片接口(ft.miniProgram.chooseImage)拍照
  • 存储权限:选择图片接口(ft.miniProgram.chooseImage)从相册选择

注:目前权限相关的JSSDK仅支持接口(ft.miniProgram.chooseImage)

详细接口文档

3. 对于上述接口,小程序或小程序的H5中在获取权限时,如果没有获取到,接口会返回什么信息?小程序和H5页面又该如何处理?

对于未获取到权限的情况分以下两种:

  1. 首先在SDK中,是支持将SDK设置为禁止向APP主动获取权限的,设置后SDK会禁止小程序主动调用接口去获取权限。
    这种情况下,在小程序中无论是H5页面还是小程序原生页面请求权限时,都会执行调用api时传递的fail回调方法,返回res,在res的errMsg中包含失败的原因(比如chooseImage:fail unauthorized disableauthorized,无相册访问权限);

    关于如何将禁用SDK权限申请的设置请参考下述文档:

  2. 其次,如果是用户未授权的情况,调用api失败后会执行fail回调方法,返回res,在res的errMsg中包含失败的原因(比如chooseImage:fail unauthorized);

对于上述两种获取不到权限的情况,无论是小程序页面或H5页面都需要根据回调返回的失败信息,自行实现提示弹窗,提示用户开启相应的权限,比如在回调中发现没有相机或相册的权限信息为fail时,应在页面增加弹窗提示,如“请在系统中允许APP访问您的相机或相册权限”。