import * as React from 'react'; import { StyleSheet, View, Text, Button, NativeEventEmitter, Alert, } from 'react-native'; import XcodeTemplateProject from '@xupd/XcodeTemplateProject'; const calendarManagerEmitter = new NativeEventEmitter(XcodeTemplateProject); const messageListener = calendarManagerEmitter.addListener( 'MessageEvent', function (map) { Alert.alert(`Receive Android message: ${map.key}`); } ); export default class App extends React.Component { /** * 移除注册的监听 */ componentWillUnmount() { if (messageListener) { messageListener.remove(); } } render() { /** * 调用原生方法 */ const nativeNormalMethod = () => { XcodeTemplateProject.nativeNormalMethod(); }; /** * 传递参数到原生方法 */ const nativeMethodWithParams = () => { XcodeTemplateProject.nativeMethodWithParams(1, 2); }; /** * 调用原生方法用Callback返回数据到JS */ const nativeMethodWithCallback = () => { XcodeTemplateProject.nativeMethodWithCallback( 2, 3, (result) => { Alert.alert(`Result is ${result}`); }, (e) => { Alert.alert(`Get result error:${e}`); } ); }; /** * 调用原生方法用Promise返回数据到JS */ const nativeMethodWithPromise = () => { XcodeTemplateProject.nativeMethodWithPromise(3, 4).then((map) => { Alert.alert(`Result is ${map.result}`); }); }; /** * 触发原生发送事件到JS */ const nativeSendCustomEvent = () => { XcodeTemplateProject.nativeSendCustomEvent(); }; return ( ReactNative混合组件桥接方法示例