Harmony 鸿蒙应用开发之展示 PDF 文件

鸿蒙应用展示 PDF 文件有三种方式

  1. 通过 ArkWeb 先加载 PDF.js,再用 PDF.js 加载 PDF 文件
  2. 通过 ArkWeb 直接加载 PDF 文件
  3. 原生加载

第一种方式比较复杂,涉及到 PDF.js 资源的加载、跨域的处理等,我就直接放代码仓库,读者可以自行研究: https://gitee.com/imaegoo/hm-pdf-viewer

更加推荐第二种方式,写法更简单

Index.ets
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import web_webview from '@ohos.web.webview';

@Entry
@Component
struct Index {
webviewController: web_webview.WebviewController = new web_webview.WebviewController();

aboutToAppear() {
// 配置 Web 开启调试模式,生产打包时要删掉
web_webview.WebviewController.setWebDebuggingAccess(true);
}

build() {
Column() {
Web({
// 把要展示的文件放到 entry/src/main/resources/rawfile/test.pdf
src: $rawfile('test.pdf'),
// 或者传网址 src: 'https://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf',
controller: this.webviewController
})
// 这行是关键,不加这行只能看到灰色的页面
.domStorageAccess(true)
}
}
}

第三种方式需要写 C++,暂时没找到现成的类库,所以没有走这条路

Harmony 鸿蒙应用开发之展示 PDF 文件

https://www.imaegoo.com/2024/harmony-pdf-viewer/

作者

iMaeGoo

发布于

2024-03-12

更新于

2024-03-12

许可协议

CC BY 4.0

评论