更新记录

2.1.0(2026-06-26)

补齐功能以及响应结构

2.0.8(2025-08-13)

安卓8闪退,startTime、 endTime筛选,getFiles

2.0.7(2025-06-26)

修复设置miniSdkVersion后无法获取图片问题

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:8.0 - 16.0 armeabi-v7a:未测试,arm64-v8a:支持,x86:未测试 ×

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


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

  • 当前版本:2.1.0;
  • 时间范围图片检索;
  • 图片、视频支持秒级 startTime/endTime 时间段筛选;缩略图支持 time 距今时间范围筛选;
  • 创建时间正倒序;
  • 分页限制获取,返回总数;
  • 支持 imageType 筛选图片类型:0.所有 1.仅截图 2.除截屏;
  • creationDate 统一返回 yyyy-MM-dd HH:mm:ss
  • 视频 duration 统一返回毫秒;
  • Android 10/API 29+ 如需读取照片 EXIF GPS 坐标,需要声明并授权 android.permission.ACCESS_MEDIA_LOCATION
  • 响应包含 ID、名称、创建时间、毫秒时间戳、宽度、高度、大小、路径、当前页码、总数。

支持 iOS、Android(推荐)

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

iOS 版独立插件

静默获取相册图片视频

uniapp 使用示例 获取图片

// 技术支持:Q群274472113
var galleryModule = uni.requireNativePlugin("vutet-getGalleryImages-android");

galleryModule.getGalleryImages(
  {
    // asc: false, // [是否正序],非必填,默认按创建时间倒序
    // time: -3 * 24 * 60 * 60, // [距现在时间范围],非必填,单位秒,表示当前时间之前到现在xx秒(负数)
    // exif: true, // 是否返回exif信息;Android 10+ 读取EXIF GPS坐标需 ACCESS_MEDIA_LOCATION 权限
    // png: false, // 是否返回 PNG 缓存图;图片列表仅影响缩略图,原图转换请用 getImageById
    // imageType: 0, // 图片类型 0.所有 1.仅截图 2.除截屏
    count: 20, // [每页条数],默认20条
    page: 1, // [页码],非必填默认第一页

    // 时间区间筛选,秒级时间戳格式
    // startTime: Math.floor(new Date().getTime() / 1000) - 3 * 24 * 60 * 60,
    // endTime: Math.floor(new Date().getTime() / 1000)
  },
  (res) => {
    console.log(res);
    // 无权限时返回,可由 uniapp 弹窗引导提醒前往应用设置开启相册授权,安卓可调用 openSettings 打开设置页
    // {"status": 401,"data": [],"msg": "暂无权限获取相册图片"}

    // {
    //   status: 200,
    //   data: [{
    //       "id": "10001",
    //       "filename": "mmexport1678604059025",
    //       "path": "/storage/emulated/0/Pictures/WeiXin/mmexport1678604059025.jpg",
    //       "thumb": "file:///xxxx.jpeg",
    //       "width": 1440,
    //       "height": 1805,
    //       "size": 287473,
    //       "creationDate": "2023-03-12 15:20:59",
    //       "add_time": 1678604059000,
    //       "imageURL": "content://media/external/images/media/10001",
    //       "longitude": "114.111",
    //       "latitude": "22.222",
    //       "exif": {}
    //   }],
    //   total: 60,
    //   current: 1,
    //   msg: "获取图片成功"
    // }

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

获取缩略图

// 技术支持:Q群274472113
var galleryModule = uni.requireNativePlugin("vutet-getGalleryImages-android");

galleryModule.getGalleryThumbnails(
  {
    count: 20, // [每页条数],默认20条
    page: 1, // [页码],非必填默认第一页
    imageType: 0, // 图片类型 0.所有 1.仅截图 2.除截屏
    time: -3 * 24 * 60 * 60, // 非必填,距现在时间范围
    width: 200, // 缩略图宽度,非必填,默认200
    height: 200, // 缩略图高度,非必填,默认200
  },
  (res) => {
    if (res.status === 401) return;

    const thumbnails = res.data.map(({ thumb }) => thumb);
    uni.previewImage({
      urls: thumbnails,
    });
  },
);

根据图片 ID 获取原图

// 技术支持:Q群274472113
var galleryModule = uni.requireNativePlugin("vutet-getGalleryImages-android");

galleryModule.getImageById(
  {
    id: "10001", // 图片ID,必填,根据 getGalleryThumbnails 可获取图片ID
    png: true, // 是否返回png格式,非必填,默认false
    exif: false, // 是否返回exif信息,非必填;Android 10+ 读取EXIF GPS坐标需 ACCESS_MEDIA_LOCATION 权限
  },
  (res) => {
    if (res.status === 401) return uni.showToast({ title: res.msg });
    if (res.status === 404) return uni.showToast({ title: res.msg });

    // {
    //   status: 200,
    //   data: {
    //     "id": "10001",
    //     "filename": "mmexport1678604059025",
    //     "creationDate": "2023-03-12 15:20:59",
    //     "add_time": 1678604059000,
    //     "width": 1440,
    //     "height": 1805,
    //     "size": 287473,
    //     "path": "/storage/emulated/0/Pictures/WeiXin/mmexport1678604059025.jpg",
    //     "imageURL": "content://media/external/images/media/10001",
    //     "longitude": "114.111",
    //     "latitude": "22.222",
    //     "exif": {}
    //   },
    //   msg: "获取图片成功"
    // }
    console.log(res.data);
  },
);

uniapp 使用示例 获取视频

var galleryModule = uni.requireNativePlugin("vutet-getGalleryImages-android");

galleryModule.getGalleryVideos(
  {
    // asc: false, // [是否正序],非必填,默认按创建时间倒序
    // time: -3 * 24 * 60 * 60, // [距现在时间范围],非必填,单位秒
    count: 20, // [每页条数],默认20条
    page: 1, // [页码],非必填默认第一页

    // 时间区间筛选,秒级时间戳格式
    // startTime: Math.floor(new Date().getTime() / 1000) - 3 * 24 * 60 * 60,
    // endTime: Math.floor(new Date().getTime() / 1000)
  },
  (res) => {
    console.log(res);
    // 无权限时返回,可由 uniapp 弹窗引导提醒前往应用设置开启相册授权
    // {"status": 401,"data": [],"msg": "暂无权限获取相册视频"}

    // {
    //   status: 200,
    //   data: [{
    //       "id": "20001",
    //       "filename": "VID_20230403_180547",
    //       "path": "/storage/emulated/0/Movies/VID_20230403_180547.mp4",
    //       "width": 1280,
    //       "height": 720,
    //       "size": 13110012,
    //       "duration": 38000,
    //       "creationDate": "2023-04-03 18:05:57",
    //       "add_time": 1680516357000
    //   }],
    //   total: 6,
    //   current: 1,
    //   msg: "获取视频成功"
    // }
  },
);

无权限 401 验证权限

var galleryModule = uni.requireNativePlugin("vutet-getGalleryImages-android");

galleryModule.checkPermission((res) => {
  // 未获得权限,会动态申请权限
  // { "status": 401, "msg": "未获得相册读取权限" }

  // 已获得权限
  // { "status": 200, "msg": "已获得相册读取权限" }
});

打开应用设置页

var galleryModule = uni.requireNativePlugin("vutet-getGalleryImages-android");

galleryModule.openSettings((res) => {
  // { "status": 200, "msg": "已打开权限设置页面" }
});

获取文件

var galleryModule = uni.requireNativePlugin("vutet-getGalleryImages-android");

galleryModule.getFiles(
  {
    directory: null, // 目录绝对路径path,或null查询根目录
    // count: 20,
    // page: 1,
  },
  (res) => {
    // { "status": 401, "msg": "暂无权限获取文件" }
    // { "status": 404, "data": [], "msg": "指定目录不存在" }
    // { "status": 200, "data": [{ "name": "Downloads", "path": "AbsolutePath" }], "msg": "获取文件成功", "total": 10 }
  },
);

问题反馈

插件可能存在的问题: 1.Android低版本 2.已上传云服务备份的网络图片 3.QQ群 274472113 4.购买离线包:联系QQ 1510217080

隐私、权限声明

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

android.permission.READ_EXTERNAL_STORAGE

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

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