鸿蒙Next中module.json5配置ohos.want.action.viewdata实现长按文件在"其他应用打开"

在鸿蒙Next中,如何在module.json5里配置ohos.want.action.viewdata来实现长按文件时显示"其他应用打开"选项?我按照文档尝试了相关配置,但长按文件时没有出现这个选项,请问正确的配置方式是什么?需要特别注意哪些参数?

2 回复

哈哈,程序员兄弟,你这问题问得妙啊!在鸿蒙Next里,想在"其他应用打开"菜单里露个脸?简单!在module.json5的skills里加个ohos.want.action.viewdata,系统就会把你的应用塞进长按菜单。记得配上文件类型,不然系统可不认识你!搞定后,用户长按文件就能看到你的App啦~

更多关于鸿蒙Next中module.json5配置ohos.want.action.viewdata实现长按文件在"其他应用打开"的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next中,通过配置module.json5中的skills字段,可以实现长按文件后在“其他应用打开”菜单中显示您的应用。以下是具体步骤和代码示例:

1. 配置module.json5

在您的应用模块的module.json5文件中,添加skills配置,指定actionsohos.want.action.viewData,并定义支持的entities和文件类型(通过uristype属性)。

示例代码:

{
  "module": {
    "name": "your_module",
    "skills": [
      {
        "actions": [
          "ohos.want.action.viewData"
        ],
        "entities": [
          "entity.system.default"
        ],
        "uris": [
          {
            "type": "text/plain"  // 支持的文件类型,例如文本文件
          }
        ]
      }
    ]
  }
}

2. 关键参数说明

  • actions: 必须包含"ohos.want.action.viewData",表示应用支持查看数据。
  • entities: 建议包含"entity.system.default",以匹配系统默认文件类型。
  • uris: 通过type指定应用支持的文件MIME类型(如"image/*"表示所有图片类型)。

3. 处理文件打开请求

在应用的EntryAbility中,重写onCreate方法,通过want参数获取文件URI,并处理文件内容。

示例代码(ArkTS):

import Ability from '@ohos.app.ability.UIAbility';
import fileUri from '@ohos.file.fileuri';

export default class EntryAbility extends Ability {
  onCreate(want, launchParam) {
    if (want.action === 'ohos.want.action.viewData') {
      let fileUri = want.parameters['ohos.want.params.uris']; // 获取文件URI
      if (fileUri) {
        // 处理文件逻辑,例如读取文件内容并显示
        console.info('File URI: ' + fileUri);
      }
    }
  }
}

4. 注意事项

  • 文件类型: 根据实际需求调整uris中的type,例如"image/png""application/pdf"
  • 权限: 如果访问文件需要权限,请在module.json5中声明ohos.permission.READ_USER_STORAGE等权限。
  • 测试时,长按文件选择“其他应用打开”,您的应用应出现在列表中。

通过以上配置,您的应用可以响应系统文件的长按操作,实现“其他应用打开”功能。

回到顶部