更新记录

1.0.0(2026-06-28)

1.0.0(2026-06-28)

  • 首次发布
  • 支持 Office文档、图片、文本、HTML 离线预览
  • 支持 自定义导航栏、水印、防截屏等
  • 提供 openPreviewclosePreviewgotoPageclearCachegetVersion API

平台兼容性

uni-app(3.8.0)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × 5.0 12 -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

其他

多语言 暗黑模式 宽屏模式
× ×

wg-app-preview-file

uni-app APP 端离线文件预览 UTS 插件。支持 PDF、Office(docx / xlsx / pptx)、图片、文本、HTML 的本地预览,以及 URL 下载后预览。

特性

  • 真离线:本地路径直接预览,无需联网
  • URL 模式:插件内下载后预览,支持缓存与 SSL 证书链异常重试
  • Office 高保真:Android / iOS 均使用 WebView + 专业 JS 引擎
  • 水印:文字平铺水印,可调透明度与角度(Android / iOS v1.2+)
  • 防截屏:Android FLAG_SECURE;iOS 录屏时内容模糊

平台支持

平台 支持 最低版本
Android App API 21(Android 5.0)
iOS App iOS 12.0
H5 / 小程序

本插件为 UTS 原生插件,必须在 App 端 + 自定义调试基座 / 正式打包 中使用,标准基座无效。鸿蒙端敬请期待~

安装

  1. 从插件市场导入,或将 uni_modules/wg-app-preview-file 复制到项目 uni_modules 目录
  2. 在 HBuilderX 中打开项目
  3. 运行 → 运行到手机或模拟器 → 制作自定义调试基座,勾选本插件
  4. 基座制作完成后,选择「自定义调试基座」运行到 Android / iOS 真机

快速开始

import {
    openPreview,
    closePreview,
    gotoPage,
    clearCache,
    getVersion,
} from "@/uni_modules/wg-app-preview-file";

// 本地文件(推荐:先 download 再 preview)
uni.downloadFile({
    url: "https://example.com/report.pdf",
    success: (res) => {
        openPreview({
            source: { type: "path", path: res.tempFilePath },
            title: "合同附件",
            watermark: { text: "内部资料", opacity: 0.15, angle: -30 },
            success: (result) => console.log("预览成功", result.filePath),
            fail: (err) => console.error(err.errCode, err.errMsg),
        });
    },
});

// 持久化路径
openPreview({
    source: { type: "path", path: "_doc/report.pdf" },
    title: "年度报告",
    targetPage: 1,
    pdfBar: { show: true, textColor: "#666666" },
});

// URL 模式(插件内下载)
openPreview({
    source: { type: "url", url: "https://example.com/file.docx" },
    title: "在线文档",
    keepCache: true,
});

API

openPreview(options)

打开全屏文件预览页。

参数 类型 必填 说明
source PreviewSource 预览源,见下表
title string 标题栏文字
topBarBgColor string 标题栏背景色,默认 #FFFFFF
topBarTextColor string 标题栏文字色,默认 #1F2329
backButtonText string 返回按钮文字,默认「返回」
showTopBar boolean 是否显示顶部导航栏,默认 true
pdfBar PreviewPdfBar PDF 翻页栏样式(仅 PDF 有效)
watermark PreviewWatermark 文字水印
preventCapture boolean 防截屏 / 录屏保护
fileName string 辅助识别文件名(无扩展名时)
fileType string 强制指定类型,如 pdfdocx
targetPage number PDF 初始页码,从 1 开始
keepCache boolean URL 模式是否保留缓存,默认 true
success function 成功回调 (res: PreviewResult) => void
fail function 失败回调 (err: PreviewFail) => void
complete function 完成回调

PreviewSource

type 字段 说明
path path: string 本地路径,支持 _doc/_www/、绝对路径、file://
url url: string 网络地址,插件下载到缓存后预览

PreviewWatermark

字段 类型 说明
text string 水印文字
opacity number 透明度 0~1,默认 0.15
angle number 旋转角度(度),默认 -30

PreviewPdfBar

字段 类型 说明
show boolean 是否显示翻页栏,默认 true
bgColor string 背景色,默认半透明;可传 #66000000
textColor string 页码文字色,默认 #8F959E
iconColor string 翻页按钮色,默认 #1F2329

PreviewResult

字段 类型 说明
filePath string 实际预览的文件路径
currentPage number 当前页(预留)
totalPages number 总页数(预留)

closePreview()

关闭当前预览页。

gotoPage(page: number)

跳转到 PDF 指定页,页码从 1 开始。仅在 PDF 预览打开时有效。

clearCache(options?)

清除插件下载与 Office 预览缓存目录,返回释放的字节数。

clearCache({
    success: (res) => console.log("释放", res.freedBytes, "字节"),
});

getVersion()

返回插件版本号字符串,如 "1.0.0"

错误码

errCode 说明
9010001 文件不存在或无读取权限
9010002 格式不支持
9010003 文件损坏或解析失败
9010004 网络下载失败
9010005 插件未授权
9010006 参数无效
9010007 预览窗口已关闭
9010008 页面跳转失败(页码越界)

支持格式

类型 扩展名 Android iOS
PDF pdf PdfRenderer + 翻页栏 PDFKit + 翻页栏
图片 jpg / jpeg / png / gif / webp / bmp 原生 原生
文本 txt / log / md / json / xml / csv / ini / yml 等 原生 原生
HTML htm / html WebView WKWebView
Word docx WebView 高保真 WebView 高保真
Excel xlsx WebView 高保真 + 图片锚点 WebView 高保真 + 图片锚点
PowerPoint pptx WebView 高保真 WebView 高保真
旧版 Office doc / xls / ppt QuickLook 降级

不支持 Office 97-2003 二进制格式(.doc.xls)。请转换为 .docx.xlsx.pptx 后预览。旧版 .ppt 在 iOS 上可能通过 QuickLook 降级预览。

离线预览最佳实践

// 1. 下载到本地
uni.downloadFile({
    url: fileUrl,
    success: (res) => {
        // 2. 可选:持久化到 _doc
        uni.saveFile({
            tempFilePath: res.tempFilePath,
            success: (saveRes) => {
                openPreview({
                    source: { type: "path", path: saveRes.savedFilePath },
                    title: "离线文档",
                });
            },
            fail: () => {
                // 临时路径也可直接预览
                openPreview({
                    source: { type: "path", path: res.tempFilePath },
                    title: "离线文档",
                });
            },
        });
    },
});

常见问题

1. 标准基座无法使用?

UTS 插件必须在 自定义调试基座云打包 / 本地打包 中使用。

2. 文件打不开?

  • 确认路径可读,插件已内置 _doc/_www/ 等虚拟路径解析
  • 无扩展名时传 fileNamefileType
  • 检查文件是否损坏、格式是否在支持列表内

3. Office 预览空白?

  • 首次打开会将 assets 复制到缓存目录,请稍候
  • 确认文件为 Open XML 格式(docx / xlsx / pptx)
  • 复杂文档(大量公式、宏、嵌入对象)建议真机实测

4. URL 预览失败?

  • 检查网络权限与 HTTPS 证书
  • 插件会对 SSL 证书链不完整的服务器自动重试一次
  • 可改用 downloadFile + path 模式

5. 修改插件后如何生效?

重新 制作自定义调试基座,或重新打包正式版。

隐私、权限声明

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

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

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

暂无用户评论。