在 HarmonyOS 静态卡片中,FormLink 的 call 类型调用方法失败,有什么限制吗?

我尝试用 FormLink 的 "call" 类型去调用主应用里的一个方法,像这样:

FormLink({
  action: "call",
  abilityName: "EntryAbility",
  params: {
    method: "doSomething"
  }
})

但是按钮点击后什么都没发生,也没有日志输出,请问 "call" 类型的触发是不是有特殊要求?

阅读 239
1 个回答

据我所知,FormLink 的 "call" 类型确实有一些使用限制:

必须满足以下条件:

1.目标 UIAbility 的 launchType 必须为 "singleton";
2.应用要声明后台运行权限:

"requestPermissions": [
  {
    "name": "ohos.permission.KEEP_BACKGROUND_RUNNING"
  }
]

3.被调用的 UIAbility 中,必须在 onCommand() 生命周期内处理传入的 method 参数:

onCommand(want: Want, restart: boolean, startId: number): void {
  const method = want.parameters.method;
  if (method === "doSomething") {
    // 执行逻辑
  }
}

否则 call 类型调用不会触发任何行为。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进