house-middleware-sdk
Version:
58 hosue rn native sdk
49 lines (36 loc) • 1.51 kB
JavaScript
/*
* @method 消息红点注册监听
* @param callback
*/
import { Platform, NativeModules, DeviceEventEmitter, NativeEventEmitter } from 'react-native';
export function addMessageInfoListener(callback) {
require("../utils/findImpl").default(() => wbMessageInfo(callback), () => ajkMessageInfo(callback));
}
function wbMessageInfo(callback) {
let emitter = Platform.OS === 'android' ? DeviceEventEmitter : new NativeEventEmitter(NativeModules.HSIMEventEmitter);
emitter.addListener('newMsg', (data) => {
callback && callback(data);
})
}
function ajkMessageInfo(callback) {
DeviceEventEmitter.addListener('newMsg', (data) => {
callback && callback({ unread: data });
});
}
export function removeMessageInfoListener() {
DeviceEventEmitter.removeAllListeners('newMsg');
}
export function registerIMMessageListener() {
require("../utils/findImpl").default(() => registerUnreadWbImpl(), () => registerUnreadAjkImpl());
}
function registerUnreadWbImpl() {
if (Platform.OS === 'android') {
NativeModules.HSMsgCenterModule && NativeModules.HSMsgCenterModule.registerMsgLister && NativeModules.HSMsgCenterModule.registerMsgLister();//目前参数没有使用
} else {
NativeModules.HSMsgCenterModule && NativeModules.HSMsgCenterModule.registerMsgLister && NativeModules.HSMsgCenterModule.registerMsgLister(() => {
});//iOS目前参数没有使用
}
}
function registerUnreadAjkImpl() {
require("ajkapp").registerUnread();
}