uni-app不会弹出设备权限使用说明

uni-app不会弹出设备权限使用说明

开发环境 版本号 项目创建方式
Windows win10 HBuilderX

产品分类:

  • uniapp/App

PC开发环境操作系统:

  • Windows

HBuilderX类型:

  • 正式

HBuilderX版本号:

  • 3.3.13

手机系统:

  • Android

手机系统版本号:

  • Android 11

手机厂商:

  • OPPO

手机机型:

  • OPPO Reno7

页面类型:

  • vue

vue版本:

  • vue2

打包方式:

  • 云端

App下载地址或H5网址:

示例代码:

"privacyDescription" : {
"NSPhotoLibraryUsageDescription" : "你可以选取照片设置头像,上传发布照片或视频",
"NSPhotoLibraryAddUsageDescription" : "你可以保存照片或视频到相册",
"NSCameraUsageDescription" : "你可以拍摄照片,录制短视频用于设置头像、发布动态",
"NSMicrophoneUsageDescription" : "你可以录制有声音视频",
"NSLocationWhenInUseUsageDescription" : "你可以随时查看附近的人和同城新鲜事儿",
"NSLocationAlwaysUsageDescription" : "",
"NSLocationAlwaysAndWhenInUseUsageDescription" : "",
"NSContactsUsageDescription" : ""
},

操作步骤:

"privacyDescription" : {
"NSPhotoLibraryUsageDescription" : "你可以选取照片设置头像,上传发布照片或视频",
"NSPhotoLibraryAddUsageDescription" : "你可以保存照片或视频到相册",
"NSCameraUsageDescription" : "你可以拍摄照片,录制短视频用于设置头像、发布动态",
"NSMicrophoneUsageDescription" : "你可以录制有声音视频",
"NSLocationWhenInUseUsageDescription" : "你可以随时查看附近的人和同城新鲜事儿",
"NSLocationAlwaysUsageDescription" : "",
"NSLocationAlwaysAndWhenInUseUsageDescription" : "",
"NSContactsUsageDescription" : ""
},
5 回复

有一些动态申请权限


请参考文档:Android平台应用启动时读写手机存储、访问设备信息(如IMEI)等权限策略及提示信息

我的意思能弹出隐私说明,ios端是能正常弹出隐私说明:privacyDescription,但是Android端不能弹出隐私说明,详见上图抖音案例展示。

回复 5***@qq.com: 你配置的权限说明是iOS的 ,安卓的配置查看上述文档

uni-app 开发中,如果你发现设备权限(如相机、麦克风、地理位置等)未弹出使用说明或未正确申请权限,可能是以下原因导致的。以下是一些排查和解决方案:


1. 确认项目配置是否正确

manifest.json 中,确保已正确配置权限声明。例如:

示例:相机权限配置

{
  "app-plus": {
    "permissions": [
      "camera"
    ]
  }
}

示例:地理位置权限配置

{
  "app-plus": {
    "permissions": [
      "location"
    ]
  }
}

2. 检查运行环境

  • H5 端:部分权限(如相机、麦克风)需要 HTTPS 支持,确保你的 H5 页面运行在 HTTPS 环境下。
  • App 端:确保在真机上测试,模拟器可能无法正确弹出权限申请。
  • 小程序端:小程序需要在 app.json 或页面配置中声明权限。

3. 动态申请权限

在代码中动态申请权限,确保权限申请的时机正确。例如:

示例:申请相机权限

uni.authorize({
  scope: 'scope.camera',
  success() {
    console.log('相机权限已授权');
  },
  fail() {
    console.log('相机权限未授权');
  }
});

示例:申请地理位置权限

uni.getLocation({
  type: 'wgs84',
  success(res) {
    console.log('位置信息获取成功', res);
  },
  fail(err) {
    console.log('位置信息获取失败', err);
  }
});

4. 检查用户是否已拒绝权限

如果用户之前拒绝了权限申请,系统不会再次弹出权限申请提示。你可以通过以下方法引导用户手动开启权限:

uni.showModal({
  title: '提示',
  content: '需要开启相机权限,请前往设置开启',
  success(res) {
    if (res.confirm) {
      // 打开系统设置
      uni.openSetting();
    }
  }
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!