纯血鸿蒙Next scheme如何配置

请问在纯血鸿蒙Next中如何配置scheme?需要具体的步骤和注意事项,有没有完整的示例可以参考?

2 回复

纯血鸿蒙Next的Scheme配置?简单说就是:在AppScope的app.json5里加个uri字段,填上你的鸿蒙专属暗号(比如"demo://page/main")。别忘了在对应Page的module.json5里也声明一下,不然鸿蒙会一脸懵:“这谁啊?” 😄 记得URI别写错,不然跳转时可能表演“凭空消失”!

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


纯血鸿蒙(HarmonyOS NEXT)的 Scheme 配置用于实现应用间的页面跳转和数据传递。以下是配置步骤和示例:

1. module.json5 中声明 Scheme

在应用的配置文件 src/main/module.json5 中添加 abilitiesskills 配置,定义 Scheme 的启动规则。

{
  "module": {
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ts",
        "skills": [
          {
            "entities": ["entity.system.home"],
            "actions": ["action.system.home"],
            "uris": [
              {
                "scheme": "demo",  // 自定义 Scheme 名称
                "host": "example", // 自定义 Host
                "port": "8000",   // 可选端口
                "pathStartWith": "/detail" // 路径匹配规则
              }
            ]
          }
        ]
      }
    ]
  }
}

2. 在 UI 页面中处理 Scheme 参数

在目标页面的 onCreateonNewWant 生命周期中解析 Scheme 携带的参数。

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

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
    // 获取 Scheme 的完整 URI
    let uri = want.uri;
    if (uri) {
      // 解析参数(示例:demo://example:8000/detail?id=123)
      let params = new URL(uri).searchParams;
      let id = params.get('id'); // 获取 id 参数
      console.info(`Scheme 参数 id: ${id}`);
    }
  }
}

3. 通过 Scheme 启动应用

在其他应用或系统中使用以下方式触发 Scheme 跳转:

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

let context = getContext(this) as common.UIAbilityContext;
let want = {
  uri: 'demo://example:8000/detail?id=123' // 匹配声明的 Scheme 规则
};
context.startAbility(want).then(() => {
  console.info('启动成功');
}).catch((err) => {
  console.error(`启动失败: ${err.code}`);
});

注意事项:

  • 唯一性:Scheme 的 scheme + host + port 组合需全局唯一,避免冲突。
  • 权限:若跨应用跳转,需在 module.json5 中配置 requestPermissions 申请权限。
  • 路径匹配pathStartWith 支持前缀匹配,需与调用方的路径一致。

按照以上步骤即可完成纯血鸿蒙 Next 的 Scheme 配置,实现灵活的应用间交互。

回到顶部