更新记录
1.0.2(2026-03-30)
一、bug修复
1.0.1(2026-03-30)
一、文档更新
1.0.0(2026-03-30)
一、新版本的首发
查看更多平台兼容性
uni-app(4.82)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 鸿蒙插件版本 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | 5.0 | 1.0.2 | 15 | 1.0.2 | 12 | 1.0.2 |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.85)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
hl-pickphoto-uts
App 端原生相册/视频选择器 UTS 插件:多选、筛选、预览与 Exif 读取。Android / iOS 为自定义全屏选图(顶栏 Tab + 滑动指示条等,行为对齐);HarmonyOS(鸿蒙) 使用系统 PhotoViewPicker,交互为系统相册界面,回调数据结构与三端一致。
UTS 环境兼容性
| uni-app | uni-app x |
|---|---|
| √ | √ |
实际能力以 App(app-android / app-ios / app-harmony) 为主;H5/小程序等需自行条件编译或降级方案。
功能概览
- pickMedia:打开原生选择界面,支持多选;回调结果为 JSON 数组字符串(见下文)。
- getExif:根据本地文件路径读取 Exif(回调为
UTSJSONObject)。 - 筛选:Android / iOS 为全部 / 视频 / 照片(ViewPager / 分页切换);鸿蒙由系统 PhotoViewPicker 提供类型筛选(图片+视频),无应用内 Tab。
- 路径:iOS、鸿蒙均会将所选媒体拷贝到应用沙箱(临时/缓存目录)后再返回路径,便于 WebView 等业务使用;
path为绝对路径字符串。鸿蒙侧date多为拷贝后文件的修改时间(mtime)。
安装与导入
插件位于 uni_modules/hl-pickphoto-uts,无需额外 npm 包。
import * as pickphoto from '@/uni_modules/hl-pickphoto-uts'
// 类型定义(可选)
import type { MediaResult } from '@/uni_modules/hl-pickphoto-uts/utssdk/interface.uts'
API
pickMedia(callback: PickMediaCallback): void
打开媒体选择器。
| 参数 | 说明 |
|---|---|
callback |
(resJson: string) => void。resJson 为 JSON 数组字符串,解析后每一项形状同下表 MediaResult。取消或未选时多为 []。 |
为何是字符串?
原生侧用 JSONSerialization / org.json 生成 JSON;若直接传 UTSJSONObject 数组经桥接到 Vue 层可能变成空 {},因此统一为字符串,业务侧 JSON.parse 使用。
MediaResult(解析后每一项)
| 字段 | 类型 | 说明 |
|---|---|---|
path |
string |
本地绝对路径 |
name |
string |
文件名 |
date |
number |
创建/修改时间戳(毫秒) |
size |
number |
字节大小 |
latitude |
number |
纬度(无则 0) |
longitude |
number |
经度(无则 0) |
isVideo |
boolean |
是否为视频 |
getExif(path: string, callback: ExifCallback): void
读取指定路径媒体的 Exif。
| 参数 | 说明 |
|---|---|
path |
与 pickMedia 返回的 path 一致 |
callback |
(res: UTSJSONObject) => void,字段依文件而定 |
使用示例
import * as pickphotoClient from '@/uni_modules/hl-pickphoto-uts'
pickphotoClient.pickMedia((resJson) => {
const list = JSON.parse(resJson) as Array<{
path: string
name: string
date: number
size: number
latitude: number
longitude: number
isVideo: boolean
}>
console.log('选中数量', list.length)
list.forEach((item) => {
console.log(item.path, item.isVideo)
})
})
pickphotoClient.getExif('/path/to/file.jpg', (res) => {
console.log('Exif', res)
})
在 uni-app 页面里预览图片/视频时,path 有时需转为 WebView 可识别的本地 URL(例如 plus.io.resolveLocalFileSystemURL、uni.getImageInfo 的 path)。可参考工程内演示页 pages/hl-pickphoto-demo/index.vue 中的 resolveAppLocalMediaUrl、displaySrc 写法。

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 273
赞赏 2
下载 11697770
赞赏 1898
赞赏
京公网安备:11010802035340号