鸿蒙Next如何配置scheme实现其他app打开
在鸿蒙Next开发中,如何配置scheme实现其他应用唤起我的应用?具体步骤是什么?需要在manifest.json里声明哪些参数?有没有完整的示例代码可以参考?调试时出现scheme不生效的情况该如何排查?
2 回复
鸿蒙Next配置scheme?简单!在module.json5里加个"skills"标签,填好scheme协议名,比如"myapp://"。其他App调用时,系统就会问用户:“开吗?”用户一点,你的App就蹦出来了!记得测试时别把自己蹦晕了~
更多关于鸿蒙Next如何配置scheme实现其他app打开的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在鸿蒙Next(HarmonyOS NEXT)中,可以通过配置scheme实现其他应用打开你的应用。以下是详细步骤和示例代码:
1. 配置应用信息
在 module.json5 文件中,添加 scheme 配置:
{
"module": {
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"launchType": "standard",
"metadata": [
{
"name": "ohos.ability.uri",
"value": "myapp"
}
]
}
]
}
}
其中 "value": "myapp" 定义你的应用 scheme(例如 myapp://)。
2. 处理外部调用
在目标 Ability 的 onCreate 或 onNewWant 中解析 URI:
import UIAbility from '@ohos.app.ability.UIAbility';
import Want from '@ohos.app.ability.Want';
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
// 获取传入的 URI
let uri = want.uri;
if (uri) {
console.log('Received URI:', uri); // 示例:myapp://detail?id=123
// 解析参数并跳转到对应页面
}
}
}
3. 其他应用调用方式
在其他应用中,通过 startAbility 触发:
let want = {
action: 'ohos.want.action.viewData',
entities: ['entity.system.browsable'],
uri: 'myapp://detail?id=123' // 替换为你的 scheme 和参数
};
try {
await context.startAbility(want);
} catch (err) {
console.error('启动失败:', err);
}
注意事项:
- Scheme 命名:建议使用英文小写,避免与系统应用冲突。
- 参数传递:可通过 URI 的 query 参数(如
?key=value)传递数据。 - 权限:确保调用方和应用均已声明必要权限。
通过以上配置,即可实现应用间通过 scheme 相互调用的功能。

