小程序多开规范

1.0 介绍

小程序多开开启后,可以实现小程序直接的相互调用

交互过程

2.0 交互参数

参数 类型 必填 描述
microAppCode String 发起端必填 小程序A发起打开小程序B时,必填
microAppMobEntrance String 跳转小程序B指定界面时,优先使用
superAppId String 回调端必填 小程序B回传参数给小程序A时,必填
actionEvent String 发起事件类型
actionType String 调起端,1:小程序;2:H5
biz String 自定义参数

3.0 事件类型

actionEvent:用来在小程序中识别请求类型

参数 类型 描述
mp_micro_open_applet String 打开小程序的操作类型
mp_micro_callback String 小程序回调接收类型

4.0 小程序交互

4.1 小程序A发起

小程序A发起原生打开小程序B的请求

openApplet() {
    let json = {
        microAppCode: "1458345661618196481",
        microAppMobEntrance: "",
        superAppId: "",
        actionEvent: "mp_micro_open_applet",
        actionType: "1",
        biz: "测试的数据222"
    }
    uni.sendNativeEvent("mp_micro_open_applet", json, function(e) {
        //刷新token在这里监听回调
        console.log("sendNativeEvent-----------回调" + JSON.stringify(e));
    });
}

4.2 小程序B接收

使用小程序URL接收参数

onLoad(e) {
    if (e) {
        this.micro = e
        console.log("--->>>>获取参数-e-:",JSON.stringify(e))
        this.isRedirect = this.$p.tool.redirect(this, e)
    }
}

接收参数

//console.log("--->>>>获取参数-e-:",JSON.stringify(e)) 
{
    "action":"redirect",
    "actionType":"1",
    "biz":"测试的数据222",
    "microAppMobEntrance":"",
    "microAppCode":"1458345661618196481",
    "actionEvent":"mp_micro_open_applet",
    "superAppId":"__UNI__2e520ab8d942cb944a72fd2b8b60982c"
}

4.3 小程序B回调

micro:接收原生URL返回的数据,就是4.2 中接收参数

console.log("-----回调" + JSON.stringify(this.micro));
if(this.micro && this.micro.actionEvent == "mp_micro_open_applet"){
    let json = {
        microAppCode: this.micro.microAppCode,
        microAppMobEntrance: this.micro.microAppMobEntrance,
        superAppId: this.micro.superAppId,
        actionEvent: "mp_micro_callback",
        actionType: this.micro.actionType,
        biz: "返回测试的数据333"
    }
    uni.sendNativeEvent("mp_micro_callback", json, function(e) {
        //刷新token在这里监听回调
        console.log("sendNativeEvent-----------回调" + JSON.stringify(e));
    });
}

4.4 小程序A接收

onLoad(e) {
    this.isRedirect = this.$p.tool.redirect(this, e)
    uni.onNativeEventReceive((event, data) => {
        console.log("-->>>onNativeEventReceive-返回-6---event-=" + event);
        this.res = JSON.stringify(data)
    });
}
文档更新时间: 2022-04-22 14:04   作者:陈冕