1) 原生(OC)向 UniApp发送消息:
iOS代码:
[self.uniMPInstance sendUniMPEvent:@"NativeEvent" data:@{@"msg":@"native message"}];
Uniapp代码:
uni.onNativeEventReceive((event,data)=>{
console.log('接收到宿主App消息:' + event + data);
this.nativeMsg = '接收到宿主App消息 event:' + event + " data: " + data;
})
2) UniApp 向原生发送消息:
Uniapp代码:
uni.sendNativeEvent('unimp-event', {
msg: 'unimp message!!!'
}, ret => {
this.nativeMsg = '宿主App回传的数据:' + ret;
})
iOS代码:
/// 小程序向原生发送事件回调方法
/// @param appid 对应小程序的appid
/// @param event 事件名称
/// @param data 数据:NSString 或 NSDictionary 类型
/// @param callback 回调数据给小程序
- (void)onUniMPEventReceive:(NSString *)appid event:(NSString *)event data:(id)data callback:(DCUniMPKeepAliveCallback)callback {
NSLog(@"Receive UniMP:%@ event:%@ data:%@",appid,event,data);
// 根据event字段跳转不同页面
/// 小程序打开状态,调用此方法可获取小程序对应的 DCUniMPViewController 实例
UIViewController *uniMPVC = [DCUniMPSDKEngine getUniMPViewController];
OriginViewController *vc = [[OriginViewController alloc] init];
// vc.modalPresentationStyle = UIModalPresentationFullScreen;
//
// [uniMPVC presentViewController:vc animated:YES completion:nil];
// 前提是打开Uniapp的方式为push,即 configuration.openMode = DCUniMPOpenModePush;
[uniMPVC.navigationController pushViewController:vc animated:YES];
// 回传数据给小程序
// DCUniMPKeepAliveCallback 用法请查看定义说明
if (callback) {
callback(@"native callback message",NO);
}
}
网友评论