zego-zim-react-native
Version:
Zego ZIM SDK for React Native
43 lines (42 loc) • 1.27 kB
JavaScript
import { NativeModules } from 'react-native';
import { ZIMEngine, createSymbol } from './ZIMEngine';
const { ZIMNativeModule } = NativeModules;
export class ZIMManager {
constructor() {
this.handle = createSymbol();
}
static getInstance() {
return this.instance || (this.instance = new ZIMManager());
}
getVersion() {
return ZIMNativeModule.getVersion();
}
createEngine(appID, appSign) {
const handle = this.handle;
if (!ZIMManager.engineMap.get(handle)) {
const engine = new ZIMEngine(handle, appID, appSign);
ZIMManager.engineMap.set(handle, engine);
return engine;
}
return null;
}
destroyEngine(engine) {
if (engine) {
ZIMManager.engineMap.delete(engine.handle);
engine.destroy();
}
}
setLogConfig(config) {
ZIMNativeModule.setLogConfig(config);
}
setCacheConfig(config) {
ZIMNativeModule.setCacheConfig(config);
}
setAdvancedConfig(key, value) {
ZIMNativeModule.setAdvancedConfig(key, value);
}
setGeofencingConfig(areaList, type) {
return ZIMNativeModule.setGeofencingConfig(areaList, type);
}
}
ZIMManager.engineMap = new Map();