更新记录

2.0.5(2025-02-20)

修复每页20条bug

2.0.4(2025-01-14)

图片路径可用于Image展示

2.0.3(2025-01-09)

返回绝对路径、可选exif、经纬度、地址逆解析

查看更多

平台兼容性

Android iOS
× 适用版本区间:9 - 17

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


静默获取相册图片、视频 ios 版

  • 时间范围检索;
  • 创建时间正倒序;
  • 分页限制获取,返回总数;
  • 响应包含名称、创建时间、宽度、高度、大小、路径、当前页码、总数

支持 iOS、Android(推荐)

静默获取手机相册图片视频

Android 版独立插件

安卓静默获取相册图片、视频

uniapp 使用示例 获取图片

// 技术支持:Q群274472113
var galleryModule = uni.requireNativePlugin('dcp-Gallery')
galleryModule.getGalleryImages(
  {
    // [是否正序],非必填,默认按创建时间倒序
    // asc: false,
    // [距现在时间范围], 非必填,单位秒,表示当前时间之前到现在xx秒(负数),场景:获取3天内照片
    // time: -3 * 24 * 60 * 60,
    // [每页条数],默认20条 每页获取的照片数量,注意:iOS不能单次大批量获取,可能导致内存暴涨应用闪退,可分页获取
    // 是否返回exif信息
    // exif: true,
    count: 20,
    // [页码], 非必填默认第一页
    page: 1
  },
  (ret) => {
    console.log(ret)
    // 无权限时返回 可由uniapp弹窗引导提醒前往应用设置开启相册授权
    // {"status": 401,"data": [],"msg": "暂无权限获取相册图片"}

    // {
    //   status: 200,
    //   data: [{
    //     filename: "00001.JPG",
    //     creationDate: "yyyy-MM-dd HH:mm:ss",
    //     width: 1920,
    //     height: 1080,
    //     size: 102400,
    //     path: "xxx/Library/Caches/GalleryImageCache/00001.JPG_1623824200_220731-24.png", // 可直接用于image展示
    //     imageURL: "file:///var/mobile/xxx/xxx.jpeg",
    //     longitude: "114.111",
    //     latitude: "22.222",
    //     exif: {}
    //   }],
    //   total: 60,
    //   msg: "获取图片成功"
    // }

    if (ret && ret.status === 200 && ret.data.length > 0) {
      uni.previewImage({
        urls: ret.data.map(({ path }) => path)
      })
    }
  }
)

uniapp 使用示例 获取视频

var galleryModule = uni.requireNativePlugin('dcp-Gallery')
galleryModule.getGalleryVideos(
  {
    // [是否正序],非必填,默认按创建时间倒序
    // asc: false,
    // [距现在时间范围], 非必填,单位秒,表示当前时间之前到现在xx秒(负数),场景:获取3天内视频
    // time: -3 * 24 * 60 * 60,
    // [每页条数],默认20条 每页获取的数量
    count: 20,
    // [页码], 非必填默认第一页
    page: 1
  },
  (ret) => {
    console.log(ret)
    // 无权限时返回 可由uniapp弹窗引导提醒前往应用设置开启相册授权
    // {"status": 401,"data": [],"msg": "暂无权限获取相册视频"}

    // {
    //   status: 200,
    //   data: [{
    //       "filename": "IMG_8717.MP4",
    //       "path": "xxx/Library/Caches/galleryCacheFolder/MOV_C20EEF43-8DB1-459B-B38F-ECFBFA4F7A27_IMG_8717.MP4",
    //       "width": 1280,
    //       "height": 1920,
    //       "size": 279412,
    //       "duration": 38,
    //       "creationDate": "2023-04-05 10:32:35"
    //   }],
    //   total: 6,
    //   current: 1,
    //   msg: "获取视频成功"
    // }
  }
)

无权限 401 验证权限

var galleryModule = uni.requireNativePlugin('dcp-Gallery')
galleryModule.checkPermission((res) => {
  // 未获得权限,会动态申请权限一次
  // { "status": 401, "msg": "未获得相册读取权限" }
  // 已获得权限
  // { "status": 200, "msg": "已获得相册读取权限" }
})

经纬度解析成详细中文地址

var galleryModule = uni.requireNativePlugin('dcp-Gallery')
galleryModule.parseLocation(
  {
    longitude: '114.034675', // 注意需传字符串
    latitude: '22.71248'
  },
  (res) => {
    // 解析失败
    // { "status": 201, "msg": "地理位置解析错误" }
    // 解析成功
    // { "status": 200, "msg": "地理位置解析成功", "data": { "country": "中国", "city": "深圳市", "street": "街道", "address": "详细地址" } }
  }
)

问题反馈

插件可能存在的问题: 1.iOS 低版本 2.已上传 iCloud 的网络图片 3.Q 群 274472113

隐私、权限声明

1. 本插件需要申请的系统权限列表:

NSPhotoLibraryUsageDescription

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问