HarmonyOS 鸿蒙Next中怎么关联特定后缀的打开方式

HarmonyOS 鸿蒙Next中怎么关联特定后缀的打开方式 比如说我现在做的一个阅读器,可以支持.txt格式的电子书文件,我想要在文件管理器中选择更多应用打开时,能显示我应用的名称,如何将这后缀名的文件格式关联到我的应用打开呢?

4 回复

尊敬的开发者,您好,

文件管理器中选择更多应用打开文件时未显示应用是由于应用未声明对应文件格式的打开能力,开发者可以参考以下方案,在module.json5文件中增加相关配置:

{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "phone"
    ],
    "deliveryWithInstall": true,
    "installationFree": false,
    "pages": "$profile:main_pages",
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:layered_image",
        "label": "$string:EntryAbility_label",
        "startWindowIcon": "$media:startIcon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "ohos.want.action.home",
              "ohos.want.action.viewData" // 必填,声明数据处理能力
            ],
            "uris": [
              {
                // 允许打开uri中以file://协议开头标识的本地文件
                "scheme": "file", // 必填,声明协议类型为文件
                "type": "general.plain-text", // 必填,表示支持打开的文件类型
                "linkFeature": "FileOpen" // 必填且大小写敏感,表示此URI的功能为文件打开
              }
            ]
          }
        ]
      }
    ],
    "extensionAbilities": [
      {
        "name": "EntryBackupAbility",
        "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets",
        "type": "backup",
        "exported": false,
        "metadata": [
          {
            "name": "ohos.extension.backup",
            "resource": "$profile:backup_config"
          }
        ],
      }
    ]
  }
}

【背景知识】

支持打开文件的应用需要在module.json5配置文件中声明文件打开能力。 详细场景可以参考已安装的应用在文件的打开方式中找不到

更多关于HarmonyOS 鸿蒙Next中怎么关联特定后缀的打开方式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


同问+1

在 HarmonyOS Next 中,通过配置 module.json5 文件中 abilities 的 skills 字段实现。添加 uri 对象,设置 scheme 为 “file”,利用 pathPattern 匹配后缀(如 “.*\.txt$”)。同时设置 mimeType 为 “application/octet-stream” 或具体类型。系统将根据此配置关联文件。

在HarmonyOS Next中关联特定文件后缀(如 .txt)的打开方式,需要在 module.json5 配置文件中声明 文件处理能力

关键配置如下:

  1. module.json5 的 module 层级下配置 skills 数组:
{
  "module": {
    "abilities": [{
      "skills": [{
        "entities": ["entity.system.home"],
        "actions": ["ohos.want.action.viewData"],
        "uris": [{
          "scheme": "file",
          "host": "*",
          "pathPattern": ".*\\.txt"
        }]
      }]
    }]
  }
}
  1. pathPattern 使用正则 .*\\.txt 表示匹配所有 .txt 后缀的文件。若需匹配存储目录中的文件,可结合 path 前缀,例如 "path": "path/to/storage"

配置完成后,用户在文件管理器中选择“其他应用打开”时,系统会自动列出你的应用。你的 Ability 的 onCreateonNewWant 中可通过 want 获取文件 URI,进行读取操作。

回到顶部