美文网首页
iOS原生和UniApp通信

iOS原生和UniApp通信

作者: 4VZhang | 来源:发表于2024-01-30 11:18 被阅读0次

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);
    }
    }

相关文章

网友评论

      本文标题:iOS原生和UniApp通信

      本文链接:https://www.haomeiwen.com/subject/lzszndtx.html