更新记录
2.0.4(2025-01-14)
iOS支持Image展示、可选返回exif、iOS返回经纬度、iOS地理位置逆解析
2.0.3(2024-03-16)
修复安卓与其他插件冲突问题
2.0.2(2023-06-08)
修复iOS12闪退问题
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:9.0 - 14.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | 适用版本区间:9 - 17 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择
静默获取相册图片、视频 Android、iOS
- 时间范围图片检索;
- 创建时间正倒序;
- 分页限制获取,返回总数;
- 响应包含图片名称、创建时间、宽度、高度、大小、图片路径、图片总数
iOS版独立插件
Android版独立插件
uniapp使用示例
// 技术支持:Q群274472113
var galleryModule = uni.requireNativePlugin("vutet-getGalleryImages");
// 先校验权限是否已获取,未获取权限会尝试申请权限
galleryModule.checkPermission((res) => {
if (res.status !== 200) return
// 开始获取相册图片
galleryModule.getGalleryImages({
// [是否正序],非必填,默认按创建时间倒序
// asc: false,
// [距现在时间范围], 非必填,单位秒,表示当前时间之前到现在xx秒(负数),场景:获取3天内照片
// time: -3 * 24 * 60 * 60,
// [每页条数],默认20条 每页获取的照片数量,注意:iOS不能单次大批量获取,可能导致内存暴涨应用闪退,可分页获取
count: 20,
// [页码], 非必填默认第一页
page: 1
}, (ret) => {
console.log(ret);
// 无权限时返回 可由uniapp弹窗引导提醒前往应用设置开启相册授权
// {"status": 401,"data": [],"msg": "暂无权限获取相册图片"}
// iOS响应数据 图片资源不能直接Image标签引用
// {
// 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.jpg"
// }],
// total: 60,
// msg: "获取图片成功"
// }
// Android响应数据
// {
// status: 200,
// data: [{
// "filename": "mmexport1678604059025",
// "path": "/storage/emulated/0/Pictures/WeiXin/mmexport1678604059025.jpg",
// "width": 1440,
// "height": 1805,
// "size": 287473,
// "creationDate": "1678604059"
// }],
// total: 60,
// current: 1,
// msg: "获取图片成功"
// }
// 示例
if (ret && ret.status === 200 && ret.data.length > 0) {
// 预览
uni.previewImage({
urls: ret.data.map(({ path }) => path)
});
// 读取为Image等uniapp内使用,下方也提供了getPath函数可批量处理
// 注:部分用户反馈getImageInfo处理后依旧无法渲染,可使用uni.compressImage处理后获取临时路径再用于渲染
uni.compressImage({
src: ret.data[0].path,
success: (res) => {
console.log(res.tempFilePath) // 可以给image标签使用
}
})
}
});
});
JS读取照片(仅提供demo,视场景使用)
const getImagePath = (path) => new Promise((resolve, reject) => {
uni.compressImage({ // uni.getImageInfo无效则使用uni.compressImage
src: path,
success: (res) => {
resolve(res.tempFilePath)
},
fail: () => {
reject()
}
})
})
const getPath = async (list) => {
const realPath = await Promise.all(list.map(item => getImagePath(item.path)))
return realPath
}
const imgList = getPath(res.data) // res.data为插件获取的数据
uniapp使用示例 获取视频
var galleryModule = uni.requireNativePlugin("vutet-getGalleryImages");
galleryModule.checkPermission((res) => {
if (res.status !== 200) return
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": "暂无权限获取相册视频"}
// iOS响应数据 视频可直接video标签引用
// {
// 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: "获取视频成功"
// }
// Android响应数据
// {
// status: 200,
// data: [{
// "filename": "VID_20230403_180547",
// "path": "/storage/emulated/0/Movies/VID_20230403_180547.mp4",
// "width": 1280,
// "height": 720,
// "size": 13110012,
// "duration": 38000,
// "creationDate": "1680516357"
// }],
// total: 6,
// current: 1,
// msg: "获取视频成功"
// }
});
});
无权限401 验证权限 【安卓可动态申请权限】
var galleryModule = uni.requireNativePlugin("vutet-getGalleryImages");
galleryModule.checkPermission((res) => {
// 未获得权限,会动态申请权限一次
// { "status": 401, "msg": "未获得相册读取权限" }
// 已获得权限
// { "status": 200, "msg": "已获得相册读取权限" }
});
问题反馈
插件可能存在的问题:
- 1.低系统版本不支持,鸿蒙4.0实测支持
- 2.已上传iCloud或云服务的网络图片
- 3.Q群274472113