HarmonyOS鸿蒙Next每日避雷API文档示例代码之statusBarManager状态栏管理PC托盘

HarmonyOS鸿蒙Next每日避雷API文档示例代码之statusBarManager状态栏管理PC托盘 statusBarManager.on(‘statusBarIconClick’)statusBarManager.off(‘statusBarIconClick’)两处示例代码有问题。

其中编写的状态栏图标点击回调函数中的switch,case了一个错误的值。

如下是两处示例代码所用到的状态栏图标点击回调函数:

private onStatusBarIconClick = (eventData: emitter.EventData) => {
  // 自定义图标点击业务
  let data = eventData.data;
  if (data) {
    switch (data['iconClickType']) {
      case 'leftClickType':
        // 自定义左键点击业务
        break;
      default:
        break;
    }
  }
}

如下是实际的回调内容:

cke_37897.png

这文档真是常看常新口牙!

话说这种不应该给个枚举啥的文档参考么,怎么扔个emitter.EventData就跑了?


更多关于HarmonyOS鸿蒙Next每日避雷API文档示例代码之statusBarManager状态栏管理PC托盘的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

开发者您好,在statusBarManager.on(‘statusBarIconClick’)参数说明中已指出,参数callback为需要注册的回调函数,返回信息为图标点击相关信息。当前仅支持返回iconClickType(点击事件类型)中的leftClick(左键)。想跟您确认下,现在是否只需要将代码中的leftClickType修改为leftClick,是否满足您的需求呢?

更多关于HarmonyOS鸿蒙Next每日避雷API文档示例代码之statusBarManager状态栏管理PC托盘的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这不是,看你们的代码如何设定么?既然,实际的是leftClick,那就leftClick😂,

尊敬的开发者,您好,官方文档已修改,参考https://developer.huawei.com/consumer/cn/doc/harmonyos-references/statusbar-extension-manager#statusbarmanageronstatusbariconclick

尊敬的开发者,您好!感谢您的反馈,问题正在加速处理中,还请关注后续版本,感谢您的理解与支持。

在鸿蒙Next中,statusBarManager 仅适用于移动设备状态栏管理,不支持直接操作PC托盘。PC托盘图标需使用 trayManager API,且需配置 ohos.permission.PLACE_AGENT 权限。若误用示例代码中的状态栏接口,在PC端会抛出 BUSINESS_ERROR_DEVICE_UNSUPPORTED 异常。

确认示例代码有误:iconClickType 的实际回调值为 'LeftClickType'(首字母大写),而非文档中使用的 'leftClickType'。正确写法:

private onStatusBarIconClick = (eventData: emitter.EventData) => {
  let data = eventData.data;
  if (data) {
    switch (data['iconClickType']) {
      case 'LeftClickType':   // 注意大写L
        // 自定义左键点击业务
        break;
      default:
        break;
    }
  }
}

关于枚举参考:emitter.EventDatadata 字段为 any,API 本身未暴露枚举,但状态栏扩展实际派发的事件结构中,iconClickType 的取值包括 'LeftClickType' 等。文档在此处未明确列出这些字符串常量,确实容易踩坑。建议直接按上文修正后使用。

回到顶部