鸿蒙NEXT版实战开发:如何实现通过调用其他已安装的应用来打开特定文件?
·
往期鸿蒙全套实战文章必看:(附带鸿蒙全栈学习资料)
如何实现通过调用其他已安装的应用来打开特定文件
开发者可以通过使用隐式Want机制来调用其他应用打开文件。通过设置合适的携带的数据(uri)、MIME type类型(type)、处理Want的方式(flag)等字段,以便系统能够识别并弹出一个选择框,让用户选择合适的应用来打开文件,效果示意如下图所示。
图1 效果示意图

调用方
- 导入相关模块。
// xxx.ets import common from '@ohos.app.ability.common'; import Want from '@ohos.app.ability.Want'; import wantConstant from '@ohos.app.ability.wantConstant'; import { BusinessError } from '@ohos.base'; - 构造请求数据。
// xxx.ets // 构造请求数据Want,以打开word文件为例 let wantInfo: Want = { uri: ‘file://.../test.docx’, // 表示待打开文件的URI路径,一般配合type使用 type: ‘application/msword’, // 表示待打开文件的类型 flags: wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION, // 表示对URI执行写入操作的授权 } - 调用接口启动。
// xxx.ets // 调用startAbility接口进行文件打开 context.startAbility(wantInfo).then(() => { // ... }).catch((err: BusinessError) => { // ... })
目标方
在module.json5配置文件中注册文件打开能力。
{
"module": {
// ...
"abilities": [
{
// ...
"skills": [
{
"actions": [
"ohos.want.action.viewData" // 声明数据处理能力
],
"uris": [
{
// 允许打开uri中以file://协议开头标识本地的word文件
"scheme": "file",
"type": "application/msword", // 表示支持打开的文件类型
"linkFeature": "FileOpen" // 表示此URI的功能为文件打开
}
// ...
]
// ...
}
]
}
]
}
}
注册文件打开能力的目标方应用,在应用市场上架时会进行相应的审核。
更多推荐


所有评论(0)