@ionic-native-ohos/file-opener
v5.36.0
Published
Ionic Native - Native plugins for ionic apps
Readme
@ionic-native/file-opener
本项目基于@ionic-native/[email protected]开发。
简介
@ionic-native/file-opener是OpenHarmony Cordova生态系统中的核心插件,提供使用默认应用程序打开设备文件系统上文件的功能,为跨平台应用开发提供设备差异化适配能力。兼容Android、iOS和OpenHarmony平台,为跨平台应用开发提供统一的文件打开能力。本文档主要说明在OpenHarmony系统中的应用。
@ionic-native/file-openerAPI提供使用默认应用程序打开文件的功能。
支持平台
- OpenHarmony:5.0+
下载安装
通过命令行或手动引入即可快速安装插件,支持从npm仓库获取。
命令行安装(推荐)
安装hionic CLI:
npm install -g hionic以下两种方式中任选其一即可,无需重复操作:
npm安装:
# 安装插件
npm install @ionic-native/file-opener
# 同步插件
hionic synchionic CLI安装:
hionic plugin add @ionic-native/file-opener手动引入安装
1.添加插件配置
根据 plugin.xml 的 config-json 项,找到 entry 模块中 config.xml 文件,并根据 param 标签添加配置
<feature name="FileOpener2">
<param name="harmony-package" value="FileOpener2" />
</feature>2.修改CMake配置
根据 plugin.xml 的 CMakeLists 项,找到 cordova 模块,路径为 target 字段的文件 CMakeLists.txt,添加 add_library
add_library(cordova SHARED
// ...
FileOpener2/FileOpener2.cpp
// ...
)3.复制源码文件
根据 plugin.xml 的 source-file 项,将 src 字段的路径代码复制到 cordova 模块中 target-dir 字段的目录中:
将源码中src/main/cpp/FileOpener2目录下的FileOpener2.h、FileOpener2.cpp文件引入到cordova模块中 src/main/cpp/FileOpener2目录下。
将源码中src/main/ets/components/FileOpener2目录下的FileOpener2.ets文件引入到cordova模块中src/main/ets/components/FileOpener2目录下。
4.添加ArkTS配置
在 cordova 模块的 build-profile.json5 文件中,buildOption/arkOptions/runtimeOnly/sources 配置项数组中加入步骤3中拷贝的ets文件路径:
"buildOption":{
"arkOptions": {
"runtimeOnly": {
"sources": [
// ...
"./src/main/ets/components/FileOpener2/FileOpener2.ets"
// ...
]
}
}
}卸载
# hionic CLI 卸载
hionic plugin remove @ionic-native/file-opener约束与限制
兼容性
在以下版本中已测试通过:
- SDK: 5.0.5(17); IDE: DevEco Studio: 6.0.0; ROM: 5.1.0.150;
使用示例
示例1:打开一个文件
实现使用默认应用程序打开设备文件系统上的文件。
import { FileOpener } from '@ionic-native/file-opener';
await FileOpener.open(filePath, mimeType);示例2:以系统模态打开文件
实现以系统模态打开文件并使用已安装的应用程序打开。
await FileOpener.showOpenWithDialog(filePath, mimeType);示例3:检查应用是否已安装
检查应用是否已安装。需要在module.json5中配置querySchemes,被判断的app需要在module.json5中配置scheme。
const res = await FileOpener.appIsInstalled(packageId);示例4:卸载应用
实现卸载指定包名的应用。
const res = await FileOpener.uninstall(packageId);使用说明
接口方法
| 方法名 | 请求参数 | 返回类型 | 描述 | 备注 |
|-------|---------|---------|------|------|
| open(...) | open(filePath: string, fileMIMEType: string) | Promise<string> | 使用默认应用程序打开文件 | |
| showOpenWithDialog(...) | showOpenWithDialog(filePath: string, mimeType: string) | Promise<string> | 以系统模态打开文件并使用已安装的应用程序打开 | |
| appIsInstalled(...) | appIsInstalled(packageId: string) | Promise<string> | 检查应用是否已安装 | |
| uninstall(...) | uninstall(packageId: string) | Promise<string> | 卸载应用 | |
方法参数说明
1. 使用默认应用程序打开文件
FileOpener.open(
filePath: string, // 文件路径
fileMIMEType: string, // 文件MIME类型
): Promise<string>;2. 以系统模态打开文件
FileOpener.showOpenWithDialog(
filePath: string, // 文件路径
mimeType: string, // 文件MIME类型
): Promise<string>;3. 检查应用是否已安装
FileOpener.appIsInstalled(
packageId: string, // 应用包名
): Promise<string>;4. 卸载应用
FileOpener.uninstall(
packageId: string, // 应用包名
): Promise<string>;目录结构
|---- 目录
| |---- src/main # 插件的实现代码
| |---- cpp # C++ 代码
| |---- ets # ArkTS 代码
| |---- www # Web 侧代码
| |---- README.md # 说明文档
| |---- package.json # 配置文件
| |---- plugin.xml # 插件配置文件贡献代码
使用过程中发现任何问题都可以提Issue,当然,也非常欢迎发PR共建。
许可证
本插件基于MIT License开源,详见LICENSE文件。
