• 注册消息事件

    Type Parameters

    • T extends {
          action: Record<string, string | number>;
          name: string;
          type: "window" | "normal" | "tabs";
      }

    Parameters

    • messages: T[]

      需要绑定的 message 事件列表

    Returns {
        [K in string]: {
            normal: {
                on: ((action, callback) => void);
                send: ((action, message?) => Promise<any>);
            };
            tabs: {
                activeSend: ((action, message?) => Promise<any>);
                on: ((action, callback) => void);
                send: ((tabId, action, message?) => Promise<any>);
            };
            window: {
                on: ((action, callback) => void);
                send: ((target, action, message?) => void);
            };
        }[FindItem<T, K, "type">]
    }

    返回一个包含对应 message 事件的相关操作方法

    Example

    // 定义枚举值
    enum Action {
    GetData = 'getData',
    }
    // 消息管理器
    const Message = registerMessage([
    {
    name: 'background',
    type: 'normal',
    action: Action,
    },
    ])
    // 向 background 中发送 message
    Message.background.send(Action.GetData)
    // 监听 background 的相关 message 事件
    Message.background.on(Action.GetData, () => {})