宿主App与小程序相互通讯

注:2.6.10 版本开始支持此功能

宿主 App 向小程序发送事件

iOS 平台

API

  1. Class DCUniMPSDKEngine.h
  2. /// 向小程序发送事件
  3. /// @param event 事件名称
  4. /// @param data 数据:NSString 或 NSDictionary 类型
  5. + (void)sendUniMPEvent:(NSString *)event data:(id)data;

示例

  1. [DCUniMPSDKEngine sendUniMPEvent:@"NativeEvent" data:@{@"msg":@"native message"}];

Android 平台

API

  1. DCUniMPSDK.getInstance().sendUniMPEvent(event, data)

参数说明

参数类型必填说明
eventString触发事件的event
dataString或JSON事件的携带参数

返回值

类型说明
booleantrue表示事件通知成功。false表示失败。可通过log查看。

示例

  1. JSONObject data = new JSONObject();
  2. data.put("sj", "点击了关于");
  3. DCUniMPSDK.getInstance().sendUniMPEvent("gy", data);

小程序平台

监听宿主App发送事件

示例

  1. uni.onNativeEventReceive((event,data)=>{
  2. console.log('接收到宿主App消息:' + event + data);
  3. this.nativeMsg = '接收到宿主App消息 event:' + event + " data: " + data;
  4. })

参数说明

属性类型说明
eventString事件名称
dataString或JsonObject宿主传递的数据

小程序向宿主 App 发送事件

小程序平台

API

向宿主App发送事件

  1. uni.sendNativeEvent(event,callback)

参数说明

属性类型说明
eventString事件名称
callbackFunction宿主App回调方法。参数可以是 String 或 JsonObject。取决于宿主的实现

示例

  1. // 向宿主App发送事件
  2. uni.sendNativeEvent('unimp-event', {
  3. msg: 'unimp message!!!'
  4. }, ret => {
  5. this.nativeMsg = '宿主App回传的数据:' + ret;
  6. })

iOS 平台

当接收到小程序发送的事件会触发 DCUniMPSDKEngineDelegate 的协议方法,需宿主App实现该方法

协议方法说明

  1. /// 监听小程序向原生发送事件方法
  2. /// @param event 事件名称
  3. /// @param data 数据:NSString 或 NSDictionary 类型
  4. /// @param callback 回调数据给小程序
  5. - (void)onUniMPEventReceive:(NSString *)event data:(id)data callback:(DCUniMPKeepAliveCallback)callback;
  6. DCUniMPKeepAliveCallback 说明
  7. /// 回调数据给小程序的 block 定义
  8. /// result:回调参数支持 NSString 或 NSDictionary 类型
  9. /// keepAlive:如果 keepAlive 为 YES,则可以多次回调数据给小程序,反之触发一次后回调方法即被移除
  10. typedef void (^DCUniMPKeepAliveCallback)(id result, BOOL keepAlive);

示例

  1. /// 监听小程序发送的事件方法
  2. - (void)onUniMPEventReceive:(NSString *)event data:(id)data callback:(DCUniMPKeepAliveCallback)callback {
  3. NSLog(@"Receive UniMP event: %@ data: %@",event,data);
  4. // 回传数据给小程序
  5. // DCUniMPKeepAliveCallback 用法请查看定义说明
  6. if (callback) {
  7. callback(@"native callback message",NO);
  8. }
  9. }

Android 平台

API

DCUniMPSDK.getInstance().setOnUniMPEventCallBack(callBack) 设置监听小程序发送给宿主的事件

参数说明

参数类型必填说明
callBackIOnUniMPEventCallBack小程序触发event事件接口

返回值

示例

  1. DCUniMPSDK.getInstance().setOnUniMPEventCallBack(new DCUniMPSDK.IOnUniMPEventCallBack() {
  2. @Override
  3. public void onUniMPEventReceive(String event, Object data, DCUniMPJSCallback callback) {
  4. Log.d("cs", "onUniMPEventReceive event="+event);
  5. //回传数据给小程序
  6. callback.invoke( "收到消息");
  7. }
  8. });

发现错误?想参与编辑?在 GitHub 上编辑此页面!