HarmonyOS鸿蒙Next中app如何被关联到“其他应用打开”
HarmonyOS鸿蒙Next中app如何被关联到“其他应用打开” 我想让App能被某些后缀(如.flac, .mp3 等)的文件,被长按后显示的菜单“其他应用打开”关联到?不知道该怎么做?请大神指教
module.json5配置参考
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
},
{
"actions": [
"ohos.want.action.sendData",
],
"uris": [
{
"scheme": "file",
"utd": "general.mp3",
"type": "audio/mp3",
"linkFeature": "FileOpen"
},
{
"scheme": "file",
"utd": "general.flac",
"type": "audio/flac",
"linkFeature": "FileOpen"
}
]
}
]
}
EntryAbility.ets参考
onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {
let uri = want.uri;
if (uri == null || uri == undefined) {
console.info('uri is invalid');
return;
}
}
参考文档: skills标签、标准化数据类型、UTD预置列表、
更多关于HarmonyOS鸿蒙Next中app如何被关联到“其他应用打开”的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,应用可以通过配置config.json
文件中的abilities
和skills
来实现被关联到“其他应用打开”。具体步骤如下:
-
配置
abilities
:在config.json
文件中,定义应用的abilities
,指定type
为page
,并设置visible
为true
,确保应用可以被其他应用调用。 -
配置
skills
:在abilities
中,添加skills
配置,指定actions
和entities
。actions
通常为ohos.want.action.viewData
,entities
则根据应用类型设置,如entity.system.browser
表示浏览器应用。 -
定义
uri
:在skills
中,通过uris
字段定义应用可以处理的URI格式,如scheme
、host
、port
等,确保应用能够响应特定的URI请求。 -
处理Want:在应用的代码中,通过
onCreate
或onNewWant
方法处理接收到的Want
对象,解析其中的URI或其他数据,执行相应的操作。
示例config.json
配置如下:
{
"app": {
"bundleName": "com.example.myapp"
},
"abilities": [
{
"name": ".MainAbility",
"type": "page",
"visible": true,
"skills": [
{
"actions": [
"ohos.want.action.viewData"
],
"entities": [
"entity.system.browser"
],
"uris": [
{
"scheme": "https",
"host": "example.com"
}
]
}
]
}
]
}
通过以上配置,应用可以被其他应用通过“其他应用打开”选项调用,并处理相应的URI请求。
在HarmonyOS鸿蒙Next中,将应用关联到“其他应用打开”功能,需在应用的config.json
文件中定义intent-filters
,指定应用支持的MIME类型、文件扩展名等。系统会根据这些信息在“其他应用打开”列表中显示你的应用。确保应用正确处理相关Intent。