UNPKG

imobile_for_reactnative

Version:

iMobile for ReactNative,是SuperMap iMobile推出的一款基于React-Native框架的移动应用开发工具。基于该开发工具,用户可以使用JavaScript开发语言,开发出在Android和IOS操作系统下运行的原生移动GIS应用,入门门槛低,一次开发,处处运行。

109 lines (97 loc) 3.33 kB
import {NativeModules, NativeEventEmitter} from 'react-native'; import { EventConst } from '../../constains' let SpeechRecognizerNative = NativeModules.SSpeechRecognizer; const nativeEvt = new NativeEventEmitter(SpeechRecognizerNative); let beginListener, endlistener, errorListener, resultListener, voluemChangeListener, eventListener function init (AppID) { return SpeechRecognizerNative.init(AppID) } function addListenser(handlers) { try { beginListener && beginListener.remove() endlistener && endlistener.remove() errorListener && errorListener.remove() resultListener && resultListener.remove() voluemChangeListener && voluemChangeListener.remove() eventListener && eventListener.remove() if (typeof handlers.onBeginOfSpeech === "function") { beginListener = nativeEvt.addListener(EventConst.RECOGNIZE_BEGIN, function () { handlers.onBeginOfSpeech() }) } if (typeof handlers.onEndOfSpeech === "function") { endlistener = nativeEvt.addListener(EventConst.RECOGNIZE_END, function () { handlers.onEndOfSpeech() }) } if (typeof handlers.onError === "function") { errorListener = nativeEvt.addListener(EventConst.RECOGNIZE_ERROR, function (e) { handlers.onError(e) }) } if (typeof handlers.onResult === "function") { resultListener = nativeEvt.addListener(EventConst.RECOGNIZE_RESULT, function (e) { handlers.onResult(e) }) } if (typeof handlers.onVolumeChanged === "function") { voluemChangeListener = nativeEvt.addListener(EventConst.RECOGNIZE_VOLUME_CHANGED, function (e) { handlers.onVolumeChanged(e) }) } if (typeof handlers.onEvent === "function") { resultListener = nativeEvt.addListener(EventConst.RECOGNIZE_EVENT, function (e) { handlers.onEvent(e) }) } } catch(e) { console.warn(e) } } function removeListener() { try { beginListener && beginListener.remove() endlistener && endlistener.remove() errorListener && errorListener.remove() resultListener && resultListener.remove() voluemChangeListener && voluemChangeListener.remove() eventListener && eventListener.remove() beginListener = null endlistener = null errorListener = null resultListener = null voluemChangeListener = null eventListener = null } catch(e) { console.warn(e) } } function start() { return SpeechRecognizerNative.start() } function cancel() { return SpeechRecognizerNative.cancel() } function isListening() { return SpeechRecognizerNative.isListening() } function stop() { return SpeechRecognizerNative.stop() } function setParameter(parameter, value) { return SpeechRecognizerNative.setParameter(parameter, value) } function getParameter(parameter) { return SpeechRecognizerNative.getParameter(parameter) } export default { init, addListenser, removeListener, start, cancel, isListening, stop, setParameter, getParameter, }