# Event 消息模块

# 概述

Event 模块为小程序消息管理模块,该模块指南基于小程序 mini-sdk

# 导入模块

import { Event } from '@ezviz/mini-sdk';

# YSRNPageWillAppear

原生页面即将重现

Event.YSRNPageWillAppear;

# YSRNPageWillDisappear

原生页面即将被覆盖

Event.YSRNPageWillDisappear;

# YSMPMessagePush

长连接推送

Event.YSMPMessagePush;

# YSMPNativeCustomMessage

自定义通知

Event.YSMPNativeCustomMessage;

# YSRNOrientationAngleChange

手机旋转方向变化

Event.YSRNOrientationAngleChange;

# on

监听全局事件(在业务不需要时候需调用 Event.off 进行销毁,如组件 componentWillUnmount 时,见下方事例)

/**
 * @description 监听全局事件
 * @param {string} type 事件类型
 * @param {func} fn 事件
 */
Event.on(Event.YSRNPageWillAppear, () => {
  // do something
});

# once

单次监听器,单次监听器最多只触发一次

/**
 * @description 单次监听器,单次监听器最多只触发一次
 * @param {string} type 事件类型
 * @param {func} callback 回调
 */
Event.once(Event.YSRNPageWillAppear, () => {
  // do something
});

# emit

发送事件

/**
 * @description 发送事件
 * @param {string} type 事件类型
 * @param {object} data 传递的数据
 */
const data = {
  xxx: 'xxxx',
};
Event.emit('test', data);

# off

移除监听事件

/**
 * @description 移除监听事件
 * @param {string} type 事件类型
 * @param {object} callback 传递的数据,不穿时移除该事件类型所有监听
 */
const callback = () => {
  // do something
};

Event.off('test', callback);

# clean

移除某类型所有监听事件

/**
 * @description 移除某类型所有监听事件
 * @param {string} type 事件类型
 */
Event.clean(Event.YSRNPageWillAppear);

# deviceMessage

监听设备长连接

/**
* @description 监听设备长连接
* @param {object} registeData 注册参数
* {
*  deviceSerial, 序列号, 不传时默认为当前设备
*  types 类型的数组,可以同时监听多个通知类型(['devStatus'])
* }
* @param {func} callback 回调
*/

Event.deviceMessage(registeData, callback) => {
  //回调信息
};

# orientationAngleMessage

监听手机旋转

/**
* @description 监听手机旋转
* @param {func} callback 回调
*/

Event.orientationAngleMessage(callback) => {
  //回调信息
};

# customMessage

监听原生消息

/**
* @description 监听原生消息
* @param {object} registeData 注册参数类型为对象方便以后扩展
* {
*  types
* }
* types为注册消息类型的数组 可以同时监听多个通知 (['xxxx','xxxx'])
* @param {func} callback 回调
*/

Event.customMessage(registeData, callback) => {
  //回调信息
};