HarmonyOS鸿蒙Next中求解!如何在手机上点击 md 格式的文件默认用自己开发的软件打开
HarmonyOS鸿蒙Next中求解!如何在手机上点击 md 格式的文件默认用自己开发的软件打开 harmonyOS 上没有找到轻量好用的 md 文件预览如见,我自己开发一个足够轻量级的软件,但是打开 md 文件时,选择其他如见打开该文件,找不到自己的这个软件,这个是缺少了什么权限吗?
目标方接入步骤
-
声明文件打开能力。
支持打开文件的应用需要在module.json5配置文件中声明文件打开能力。其中uris字段表示接收URI的类型,其中scheme固定为file。type字段表示支持打开的文件类型(参见UTD类型(推荐)或MIME type类型),如下举例中类型为txt文件。
{ "module": { // ... "abilities": [ { // ... "skills": [ { "actions": [ "ohos.want.action.viewData" // 必填,声明数据处理能力 ], "uris": [ { // 允许打开uri中以file://协议开头标识的本地文件 "scheme": "file", // 必填,声明协议类型为文件 "type": "general.plain-text", // 必填,表示支持打开的文件类型 "linkFeature": "FileOpen" // 必填且大小写敏感,表示此URI的功能为文件打开 } // ... ] // ... } ] } ] } } -
应用处理待打开文件。
声明了文件打开的应用在被拉起后,获取传入的Want参数信息,从中获取待打开文件的URI,在打开文件并获取对应的file对象后,可对文件进行读写操作。
// xxx.ets import { fileIo } from '[@kit](/user/kit).CoreFileKit'; import { Want, AbilityConstant, UIAbility } from '[@kit](/user/kit).AbilityKit'; import { BusinessError } from '[@kit](/user/kit).BasicServicesKit'; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { // 从want信息中获取uri字段 let uri = want.uri; if (uri == null || uri == undefined) { console.info('uri is invalid'); return; } try { // 根据待打开文件的URI进行相应操作。例如同步读写的方式打开URI获取file对象 let file = fileIo.openSync(uri, fileIo.OpenMode.READ_WRITE); console.info('Succeed to open file.'); } catch (err) { let error: BusinessError = err as BusinessError; console.error(`Failed to open file openSync, code: ${error.code}, message: ${error.message}`); } } }
详见开发文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/file-processing-apps-startup
更多关于HarmonyOS鸿蒙Next中求解!如何在手机上点击 md 格式的文件默认用自己开发的软件打开的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
就像这样,有没有大佬指点一下

在HarmonyOS Next中,需在module.json5的skills中配置actions为"ohos.want.action.viewData",uris设置scheme为"file",type为"text/markdown",或使用fileExtension指定".md"。同时确保应用声明了ohos.permission.READ_MEDIA等文件读取权限。系统将自动识别并默认调用你的应用打开.md文件。
在 HarmonyOS Next 中,要让自己的应用出现在系统文件打开方式列表中,需要在 module.json5 里为对应的 Ability 配置 skills 声明其支持的 Intent。关键在于添加 actions 为 "ohos.want.action.viewData",并设置 uris 的 scheme、host 和 pathPattern 来匹配文件扩展名,或通过 type 声明所支持的 MIME 类型(如 text/markdown 或 text/plain)。若不声明 MIME,系统可能无法正确识别。同时确保权限中已申请 ohos.permission.READ_MEDIA 或 ohos.permission.FILE_ACCESS_MANAGER 等读取权限,以便应用能访问用户选择的文件。完成这些配置并重新安装应用后,点击 md 文件时就会在打开方式列表中看到你的软件。

