{"_id":"@capacitor-ohos/file-viewer","_rev":"2-345779364f4b9a1a21a017ebf72e2faf","name":"@capacitor-ohos/file-viewer","dist-tags":{"latest":"2.0.1"},"versions":{"2.0.0":{"name":"@capacitor-ohos/file-viewer","version":"2.0.0","keywords":["capacitor","plugin","native"],"author":{"url":"Group","name":"Huawei Device Co., Ltd and iSoftStone Information Technology"},"license":"MIT","_id":"@capacitor-ohos/file-viewer@2.0.0","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-file-viewer/issues"},"dist":{"shasum":"443372d96aedb46a6fd53ffe471b17e6a76a23fc","tarball":"https://registry.npmjs.org/@capacitor-ohos/file-viewer/-/file-viewer-2.0.0.tgz","fileCount":10,"integrity":"sha512-nyNYrSS23HKzj18TYPWJmnvMsAzH74K5rNqJhbFBjgNWsiTvu32i6pc7jScQlAycWbB4uCDWvzzFy6x7dGrXGg==","signatures":[{"sig":"MEYCIQDZfkbqRlcDYXWIQms8SsWtx3zEkdahwMYsBiqVDafMoAIhALVsGGcBPP7EKI5rUjmnDNZGS3bF8l9ydY7XOQJN1QW+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35081},"gitHead":"049c0910af8737f021ef09d71fcc92445dfb8548","_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"capacitor":{"id":"@capacitor/file-viewer","platforms":["openharmony"]},"repository":{"url":"gitcode:CPF-Ionic/capacitor-file-viewer","type":"git"},"_npmVersion":"10.5.1","description":"The FileViewer API provides mechanisms for opening files and previewing media. Not available on web.","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/file-viewer_2.0.0_1777545416200_0.2016795769410824","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@capacitor-ohos/file-viewer","version":"2.0.1","description":"The FileViewer API provides mechanisms for opening files and previewing media. Not available on web.","capacitor":{"id":"@capacitor/file-viewer","platforms":["openharmony"]},"repository":{"type":"git","url":"gitcode:CPF-Ionic/capacitor-file-viewer"},"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-file-viewer/issues"},"keywords":["capacitor","plugin","native"],"author":{"name":"Huawei Device Co., Ltd and iSoftStone Information Technology","url":"Group"},"license":"MIT","_id":"@capacitor-ohos/file-viewer@2.0.1","gitHead":"78593c0feff8d8a06d8bc22765ca3b041cd990a1","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-OHS79QnbohhQC14xoLp+kuquf+i223fcPdn+H+2Y3rvvPGee+V5zXqPH4YBTjxqqLZv+j9iyyoJZUUMaVYJa/w==","shasum":"d1692c4fe0b3789f13c5428f1b5b4fc3a8891b97","tarball":"https://registry.npmjs.org/@capacitor-ohos/file-viewer/-/file-viewer-2.0.1.tgz","fileCount":10,"unpackedSize":35105,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC9eqdAnfrM8yALn/IySXEE+L5lXW7HB6DLw3A2z5U+RgIgILrkxjXS5KY5Aolgq/1aj9bTCVBSqRYP8MjpYlrRoqU="}]},"_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"directories":{},"maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/file-viewer_2.0.1_1784795391027_0.8297633518335861"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-30T10:36:56.089Z","modified":"2026-07-23T08:29:51.431Z","2.0.0":"2026-04-30T10:36:56.343Z","2.0.1":"2026-07-23T08:29:51.179Z"},"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-file-viewer/issues"},"author":{"name":"Huawei Device Co., Ltd and iSoftStone Information Technology","url":"Group"},"license":"MIT","keywords":["capacitor","plugin","native"],"repository":{"type":"git","url":"gitcode:CPF-Ionic/capacitor-file-viewer"},"description":"The FileViewer API provides mechanisms for opening files and previewing media. Not available on web.","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"readme":"# <center>@capacitor/file-viewer</center>\r\n[![zh-CN](https://img.shields.io/badge/lang-中文-blue.svg)](README.md)\r\n[![en](https://img.shields.io/badge/lang-English-blue.svg)](README.en.md)\r\n\r\n本项目基于 [@capacitor/file-viewer@2.0.0](https://www.npmjs.com/package/@capacitor/file-viewer) 开发。\r\n\r\n## 简介\r\n\r\n`@capacitor/file-viewer` 是 capacitor 生态系统中的插件，用于提供打开文件和预览媒体的功能，为跨平台应用开发提供设备差异化适配能力，兼容 capacitor 的 Android、iOS 等主流移动平台，本文档主要说明在 OpenHarmony 系统中的使用。\r\n\r\n该插件支持从本地文件系统、应用资源、远程 URL 打开和预览各种类型的文件，满足应用中文件查看、媒体预览等场景需求。\r\n\r\n## 支持平台\r\n\r\n- **OpenHarmony**：5.0+\r\n\r\n## 下载安装\r\n\r\n通过命令行或手动引入即可快速安装插件，支持从npm仓库获取。\r\n\r\n### 命令行安装（推荐）\r\n\r\n安装hionic CLI：\r\n\r\n```bash\r\nnpm install -g hionic\r\n```\r\n\r\n以下两种方式中**任选其一**即可，无需重复操作：\r\n\r\nnpm安装：\r\n\r\n```bash\r\n# 安装插件\r\nnpm install @capacitor/file-viewer\r\n\r\n# 同步插件\r\nhionic sync openharmony\r\n```\r\n\r\nhionic CLI安装：\r\n\r\n```bash\r\nhionic plugin add @capacitor/file-viewer\r\n```\r\n\r\n### 手动引入安装\r\n\r\n根据插件源码中 `plugin.xml` 配置在项目中添加/修改相关配置：\r\n\r\n#### 1. 添加插件配置\r\n根据 `plugin.xml` 的 `config-json` 项，找到 `entry` 模块中 `capacitor.plugins.json` 文件，并根据 `param` 标签添加配置：\r\n\r\n```json\r\n{\r\n    \"pkg\": \"@capacitor/file-viewer\",\r\n    \"classpath\": \"FileViewer\"\r\n}\r\n```\r\n\r\n#### 2. 修改 CMake 配置\r\n根据 `plugin.xml` 的 `CMakeLists` 项，找到 capacitor 模块，路径为 `target` 字段的文件 `CMakeLists.txt`，添加 `add_subdirectory`，同时添加 `target_link_libraries`：\r\n\r\n```cmake\r\n#START_ADD_SUBDIRECTORY\r\n// ...\r\nadd_subdirectory(FileViewer)\r\n// ...\r\n#END_ADD_SUBDIRECTORY\r\n\r\n// ...\r\n\r\ntarget_link_libraries(capacitor PUBLIC\r\n  \"-Wl,--whole-archive\"\r\n  // ...\r\n  FileViewer\r\n  // ...\r\n  \"-Wl,--no-whole-archive\"\r\n);\r\n```\r\n\r\n#### 3. 复制源码文件\r\n根据 `plugin.xml` 的 `source-file` 项，将 `src` 字段的路径代码复制到 capacitor 模块中 `target-dir` 字段的目录中：\r\n\r\n将源码中 src/main/cpp/FileViewer 目录下的 FileViewer.h、FileViewer.cpp、CMakeLists.txt 文件引入到 capacitor 模块中 src/main/cpp/FileViewer 目录下。\r\n\r\n将源码中 src/main/ets/components/FileViewer 目录下的 FileViewer.ets 文件引入到 capacitor 模块中 src/main/ets/components/FileViewer 目录下。\r\n\r\n#### 4. 添加 ArkTS 配置\r\n在 capacitor 模块的 `build-profile.json5` 文件中，`buildOption/arkOptions/runtimeOnly/sources` 配置项数组中加入步骤 3 中拷贝的 ets 文件路径：\r\n\r\n```json\r\n\"buildOption\": {\r\n  // ...\r\n   \"arkOptions\": {\r\n      \"runtimeOnly\":[\r\n      // ...\r\n          \"./src/main/ets/components/FileViewer/FileViewer.ets\"\r\n      // ...\r\n      ]\r\n   }\r\n}\r\n```\r\n\r\n## 卸载\r\n\r\n```bash\r\n# 卸载 file-viewer 插件\r\nhionic plugin remove @capacitor/file-viewer\r\n```\r\n\r\n## 约束与限制\r\n\r\n### 兼容性\r\n\r\n在以下版本中已测试通过：\r\n\r\n1. SDK: 5.0.5(17); IDE: DevEco Studio: 6.0.0; ROM: 5.1.0.150;\r\n\r\n## 使用示例\r\n\r\n### 示例：打开本地文件 / 预览远程 URL 文件\r\n\r\n```javascript\r\nimport { FileViewer } from \"@capacitor/file-viewer\";\r\n\r\n// can use a plugin like @capacitor/filesystem to get the full path to the file\r\nconst openDocument = async () => {\r\n  await FileViewer.openDocumentFromLocalPath({\r\n    path: \"path/to/file.pdf\"\r\n  });\r\n};\r\n\r\n// Preview media from URL\r\nconst previewMedia = async () => {\r\n  await FileViewer.previewMediaContentFromUrl({\r\n    url: \"https://url_hosting_media/file.mp4\"\r\n  });\r\n};\r\n```\r\n\r\n## 使用说明\r\n\r\n### 接口方法\r\n\r\n| 方法名 | 返回类型 | 描述 |\r\n| ---- | ---- | ---- |\r\n| openDocumentFromLocalPath(options: [OpenFromLocalPathOptions](#OpenFromLocalPathOptions/PreviewMediaFromLocalPathOptions)) | Promise&lt;void&gt; | 打开存储在本地文件系统中的文件 |\r\n| openDocumentFromResources(options: [OpenFromResourcesOptions](#OpenFromResourcesOptions/PreviewMediaFromResourcesOptions)) | Promise&lt;void&gt; | 打开应用程序资源文件 |\r\n| openDocumentFromUrl(options: [OpenFromUrlOptions](#OpenFromUrlOptions/PreviewMediaFromUrlOptions)) | Promise&lt;void&gt; | 从远程 URL 打开文件 |\r\n| previewMediaContentFromLocalPath(options: [PreviewMediaFromLocalPathOptions](#OpenFromLocalPathOptions/PreviewMediaFromLocalPathOptions)) | Promise&lt;void&gt; | 预览存储在本地文件系统中的媒体文件，OpenHarmony 默认使用 `openDocumentFromLocalPath` |\r\n| previewMediaContentFromResources(options: [PreviewMediaFromResourcesOptions](#OpenFromResourcesOptions/PreviewMediaFromResourcesOptions)) | Promise&lt;void&gt; | 预览应用资源中的媒体文件，OpenHarmony 默认使用 `openDocumentFromResources` |\r\n| previewMediaContentFromUrl(options: [PreviewMediaFromUrlOptions](#OpenFromUrlOptions/PreviewMediaFromUrlOptions)) | Promise&lt;void&gt; | 预览来自远程 URL 的媒体文件，OpenHarmony 默认使用 `openDocumentFromUrl` |\r\n\r\n### 数据结构\r\n\r\n#### OpenFromLocalPathOptions/PreviewMediaFromLocalPathOptions\r\n\r\n打开本地文件选项：\r\n\r\n| 属性名     | 类型   | 描述                        |\r\n| ---------- | ------ | --------------------------- |\r\n| **`path`** | string | 要打开的文件的完整路径      |\r\n\r\n#### OpenFromResourcesOptions/PreviewMediaFromResourcesOptions\r\n\r\n打开应用资源文件选项：\r\n\r\n| 属性名     | 类型   | 描述                       |\r\n| ---------- | ------ | -------------------------- |\r\n| **`path`** | string | 要打开的资源文件的相对路径 |\r\n\r\n#### OpenFromUrlOptions/PreviewMediaFromUrlOptions\r\n\r\n打开远程文件选项：\r\n\r\n| 属性名    | 类型   | 描述                       |\r\n| --------- | ------ | -------------------------- |\r\n| **`url`** | string | 指向要打开的文件的远程 URL |\r\n\r\n## 目录结构\r\n\r\n```\r\n|---- 项目根目录\r\n|     |---- src\r\n|           |---- main\r\n|                 |---- cpp\r\n|                       |---- FileViewer   # 插件核心 C++ 实现\r\n|                             |---- FileViewer.cpp\r\n|                             |---- FileViewer.h\r\n|                             |---- CMakeLists.txt\r\n|                 |---- ets\r\n|                       |---- components\r\n|                             |---- FileViewer   # ArkTS 组件实现\r\n|                                   |---- FileViewer.ets\r\n|     |---- README.md              # 说明文档\r\n|     |---- package.json           # npm 配置文件\r\n|     |---- plugin.xml            # capacitor 插件配置\r\n|     |---- LICENSE               # 许可证文件\r\n```\r\n\r\n## 贡献代码\r\n\r\n使用过程中发现任何问题都可以提 [Issue](https://gitcode.com/CPF-Ionic/capacitor-file-viewer/issues)，当然，也非常欢迎发 [PR](https://gitcode.com/CPF-Ionic/capacitor-file-viewer/pulls) 共建。\r\n\r\n## 许可证\r\n\r\n本插件基于 **MIT License** 开源，详见 [LICENSE](./LICENSE) 文件。\r\n","readmeFilename":"README.md"}