外观
system.media
约 417 字大约 1 分钟
2026-07-15
官网目录中的 system.audio 是音频播放;这里的 system.media 是独立图片预览 feature。
media.previewImage(options)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
current | Object/Any | 否 | 当前展示项;默认 null,精确形态未固定 |
uris | String[] | 是 | 图片 URI 列表 |
success | Function | 否 | 成功回调 |
fail | Function | 否 | (message, code) |
complete | Function | 否 | 完成回调 |
import media from '@system.media'
media.previewImage({
current: null,
uris: [
'internal://files/a.jpg',
'internal://files/b.jpg'
],
fail: (msg, code) => console.error(code, msg)
})current 在 JIDL 中故意定义为宽泛的 object。旧实现可能接受索引、URI 或媒体项对象,但 当前固件样本的 JIDL 没有给出契约;最稳妥的调用是省略它或传 null,让预览从默认图片开始。若要指定当前图,应分别真机测试 0、URI 字符串和对象形态,不能把任一种写成跨固件保证。
success 表示预览界面已成功调起,不代表用户看完图片;complete 在成功或失败路径后执行。JIDL 中三个回调均无成功数据。
使用建议
- URI 应是快应用有权读取的本地/内部 URI;普通文件系统绝对路径可能被沙箱拒绝;
- 在调用前过滤空字符串并确认
uris.length > 0; - 大图是否缩放、缓存和支持的格式由系统媒体实现决定;
- 不要把
system.media与音频播放的system.audio混用。
function previewImages(uris) {
const valid = uris.filter(uri => typeof uri === 'string' && uri.length > 0)
if (!valid.length) throw new Error('no image uri')
media.previewImage({
uris: valid,
success: () => console.log('preview opened'),
fail: (message, code) => console.error(code, message),
complete: () => console.log('preview request completed')
})
}机型可用性
| Xiaomi Smart Band 10 Pro | Xiaomi Watch S4 41mm |
|---|---|
| ✅ | ✅ |