更新记录
1.0.3(2026-08-17)
窗口级原生图片浏览器,支持流畅缩放、横向分页、缩略图联动、安全区顶部栏、加载动画和索引回调。
平台兼容性
uni-app(4.71)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| √ |
√ |
× |
× |
√ |
√ |
√ |
√ |
× |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| × |
× |
× |
× |
× |
× |
× |
× |
× |
× |
× |
× |
uni-app x(4.33)
| Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
| × |
× |
× |
× |
× |
× |
fsyang-image-preview
Android / iOS 窗口级原生图片浏览器。插件直接覆盖当前应用窗口,不打开新页面、Activity 或 WebView。
功能
- 主图按屏幕宽度 100% 等比显示并垂直居中
- 原生横向分页、双指缩放、双击缩放和放大后拖动
- 顶部自动避开 Android 状态栏及 iOS 安全区
- 底部可横向滚动的缩略图列表,与主图双向联动
- 白色加载动画、黑色经典背景
- 主图变化、关闭和错误回调
使用
import {
openImagePreview,
closeImagePreview,
onImagePreviewChange,
onImagePreviewClose,
onImagePreviewError
} from '@/uni_modules/fsyang-image-preview'
// 建议在 App.vue onLaunch 中注册一次。
onImagePreviewChange((event) => {
console.log('当前图片', event.index, event.url, event.total)
})
onImagePreviewClose((event) => {
console.log('预览关闭', event.index, event.reason)
})
onImagePreviewError((event) => {
console.error('图片预览失败', event.code, event.message)
})
openImagePreview({
images: [
'https://example.com/1.jpg',
'https://example.com/2.jpg'
],
current: 0,
maxZoom: 4,
showThumbnails: true,
closeOnTap: false,
backgroundColor: '#000000'
})
// 业务需要时主动关闭。
closeImagePreview()
参数
| 参数 |
类型 |
默认值 |
说明 |
| images |
string[] |
必填 |
图片地址,支持 http(s) 和本地绝对路径 |
| current |
number |
0 |
首图下标,越界时自动修正 |
| maxZoom |
number |
4 |
相对初始宽度的最大缩放倍数,最低为 2 |
| showThumbnails |
boolean |
true |
是否显示底部缩略图 |
| closeOnTap |
boolean |
false |
单击主图是否关闭;双击仍用于缩放 |
| backgroundColor |
string |
#000000 |
全屏背景色 |
回调
| API |
数据 |
| onImagePreviewChange |
{ index, url, total } |
| onImagePreviewClose |
{ index, url, reason },reason 为 button、tap 或 api |
| onImagePreviewError |
{ code, message } |
onImagePreviewChange 在首次展示和主图落到新下标时触发。点击缩略图跳转也会触发。
平台要求
- Android 5.0(API 21)及以上
- iOS 15.0 及以上
- 需要自定义基座或云打包,标准基座不包含本地新增的 UTS 原生插件