鸿蒙Next scheme配置方法

在鸿蒙Next开发中,如何正确配置scheme?具体步骤和注意事项有哪些?求详细的配置方法和示例代码。

2 回复

鸿蒙Next的Scheme配置?简单说就是让App能“接电话”!在module.json5里加个uri字段,像这样:

"abilities": [{
  "uri": "myapp://detail"
}]

然后手机喊一声“myapp://detail”,你的App就会蹦出来接客啦!记得提前申请权限哦~

更多关于鸿蒙Next scheme配置方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


鸿蒙Next(HarmonyOS NEXT)的Scheme配置方法如下,适用于实现应用间跳转或特定页面直达功能:

1. 配置Scheme参数

module.json5 文件中添加 abilitiesschemes 字段:

{
  "module": {
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        "schemes": [
          {
            "name": "myapp",  // 自定义Scheme名称
            "actions": [
              "action.system.home"
            ]
          }
        ]
      }
    ]
  }
}

2. 解析Scheme参数

在Ability的 onCreateonNewWant 中获取跳转参数:

import UIAbility from '@ohos.app.ability.UIAbility';

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
    // 获取Scheme跳转的URI
    let uri = want.uri;
    if (uri) {
      console.log('Scheme URI:', uri); // 示例:myapp://path?key=value
      // 解析参数并跳转到对应页面
    }
  }
}

3. 触发Scheme跳转

  • 应用内跳转:使用 want 配置Scheme:

    let want = {
      uri: 'myapp://detail?id=123'  // 对应自定义Scheme
    };
    this.context.startAbility(want).catch((error) => {
      console.error('启动失败:', error);
    });
    
  • 外部调用:通过系统命令或其他应用触发:

    # 使用hdc shell命令测试
    hdc shell aa start -a EntryAbility -b com.example.myapp -u "myapp://home"
    

注意事项:

  1. Scheme名称:需全局唯一,建议包含应用标识。
  2. 权限:若跨应用跳转,需在 module.json5 中声明 ohos.permission.START_ABILITIES_FROM_BACKGROUND 权限。
  3. 参数安全:对URI中的参数进行校验,防止恶意数据注入。

通过以上步骤即可完成鸿蒙Next的Scheme配置,实现灵活的应用内/跨应用导航。

回到顶部