UNPKG

zego-zim-react-native

Version:

Zego ZIM SDK for React Native

43 lines (42 loc) 1.27 kB
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();