在鸿蒙OS中,关于登录功能,登录成功后,登录状态的改变,通过什么发送给需要监听登录状态的地方?

在鸿蒙OS中,关于登录功能,登录成功后,登录状态的改变,通过什么发送给需要监听登录状态的地方?

阅读 601
1 个回答

可以使用Emitter来发送和处理事件。
订阅事件:

import emitter from '@ohos.events.emitter';
import promptAction from '@ohos.promptAction';

const TAG: string = 'ThreadModel';

// 定义一个eventId为1的事件
let event: emitter.InnerEvent = {
  eventId: 1
};

// 收到eventId为1的事件后执行该回调
let callback = (eventData: emitter.EventData): void => {
  promptAction.showToast({
    message: JSON.stringify(eventData)
  });
  Logger.info(TAG, 'event callback:' + JSON.stringify(eventData));
};

// 订阅eventId为1的事件
emitter.on(event, callback);
promptAction.showToast({
  message: $r('app.string.emitter_subscribe_success_toast')
});

发送事件:

import emitter from '@ohos.events.emitter';
// 定义一个eventId为1的事件,事件优先级为Low
let event: emitter.InnerEvent = {
  eventId: 1,
  priority: emitter.EventPriority.LOW
};

let eventData: emitter.EventData = {
  data: {
    content: 'c',
    id: 1,
    isEmpty: false
  }
};

// 发送eventId为1的事件,事件内容为eventData
emitter.emit(event, eventData);

如果是更新UI的话也可以使用基于应用全局的UI状态存储AppStorage来刷新UI,具体可以参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...

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