01 默认传参

使用凌云移动端打开微应用时,app 默认会传递一些参数,并缓存在微应用中。

1.1 接收原生参数

this.$p.tool.get(this.$p.sp.entName) //entName:参数名
this.$p.tool.get("ent_name") //"ent_name":值

this.$p.sp参数:

entName:参数名

ent_name:值

参数名 类型 描述
mobile String mobile 凌云移动端 android 、ios
token String token 用户唯一值(带前缀的)
tokenValue String token_value 唯一值(不带前缀的)
refreshToken String refresh_token 刷新token
basePath String basePath ip地址+端口
userName String user_name 用户名
phone String phone_number 手机号
userId String user_id 用户 Id
staffId String staff_id 员工id
entId String ent_id 企业 Id
entName String ent_name 企业名称
parkName String park_name 园区名称
parkId String park_id 园区 Id
deviceCode String device_code 设备唯一值
walletId String wallet_id 钱包ID
walletName String wallet_name 钱包用户名
suiteCode String suiteCode 套件标识,不建议使用,建议开发者后台获取,然后写死标识
//_this.$flyrise.save 为封装的 uni.setStorageSync(OBJECT) 异步缓存接口
static save(_this) {
        try {
            var args = JSON.parse(plus.runtime.arguments);
            console.log('---->>>app-runtime.arguments: ' + plus.runtime.arguments);
            var type = args && args.userName;
            console.log(JSON.stringify(args))
            _this.$flyrise.save("token", args.token)
            _this.$flyrise.save("userName", args.userName)
            _this.$flyrise.save("userId", args.userId)
            _this.$flyrise.save("entId", args.entId)
            _this.$flyrise.save("selectedUserId", args.selectedUserId)
        } catch (e) {
            console.log('---->>>app-Shortcut-exception: ' + e);
        }
}

1.2 接收监听位置

监听位置:App.vue>>>onLaunch()

onLaunch: function() {
        this.$flyrise.log('-->>>app.vue:--App Launch');
        this.save(); // 小程序检测启动参数  
}

02 传参介绍

2.1 EventKey可传参数

字段 返回类型 介绍 使用
refresh_token json 刷新Token事件 监听、触发
selected_depart json 选择部门事件(单选、多选) 监听、触发
selected_person json 选择人员事件(单选、多选) 监听、触发
selected_park json 选择园区事件 监听、触发
selected_card json 选择名片事件 监听、触发
face_acquisition json 人脸采集 监听、触发
mpOpenPay json 支付订单:地址 监听、触发
mp_micro_refresh_view json 刷新当前小程序界面 触发
mp_micro_finish json 小程序回调关闭微应用 触发
mp_micro_open_applet json 小程序多开:地址 监听、触发

2.2 小程序传值给原生

//小程序js层发送事件给宿主
uni.sendNativeEvent("aa",{}, function(e){
    console.log("sendNativeEvent-----------回调"+JSON.stringify(e));
});

//JAVA监听小程序发来的事件 通过callback返回参数
DCUniMPSDK.getInstance().setOnUniMPEventCallBack(new DCUniMPSDK.IOnUniMPEventCallBack() {
    @Override
    public void onUniMPEventReceive(String event, Object data, DCUniMPJSCallback callback) {
        callback.invoke( "测试数据");
    }
});

2.3 原生传值给小程序

2.3.1 接收
//JAVA原生层
JSONObject data = new JSONObject();
data.put("sj", "点击了关于");
DCUniMPSDK.getInstance().sendUniMPEvent("gy", data);

//uni小程序JS代码 监听宿主触发给小程序的事件
uni.onNativeEventReceive(function(event, data){
    console.log("onNativeEventReceive----="+event);
});
2.3.2 解析
//uni.onNativeEventReceive(function(event, data)
const result = JSON.stringify(data, null, '\t')
const json = JSON.parse(result)
const userData = Array.isArray(json.items) ? json.items[0] : json.items.values[0]

03 传参示例

3.1 刷新 Token - refresh_token

刷新比较特殊,需要用到同步请求,所以接收参数只能用发送的回调。

触发原生
uni.sendNativeEvent("refresh_token",{}, function(e){
    //刷新token在这里监听回调
    console.log("sendNativeEvent-----------回调"+JSON.stringify(e));
});
接收的参数
{
    "isSuccess":true,
    "token":"bearer 475a2db1-00d4-4058-a8d2-77d5e33839dd"
}

3.2 选择人员 - selected_person

触发原生
//单选-data:{}
//多选-data:{multi: true}
uni.sendNativeEvent("selected_person",data, function(e){
    console.log("sendNativeEvent-----------回调"+JSON.stringify(e));
});
接收的参数
//使用 onNativeEventReceive 接收原生回调
{
 "items": [
     {
         "status": "1",
         "email": "",
         "enterpriseName": "",
         "id": "1470285719105183744",
         "isSelected": false,
         "hasChild": false,
         "phone": "13798964854",
         "pinyin": "ys",
         "infoType": "1",
         "position": "",
         "itemType": 1003,
         "tagList": [],
         "userId": "1468119346922139648",
         "type": 2002,
         "sex": "2",
         "isFirst": false,
         "name": "余松",
         "departmentId": "1467776574189879296",
         "hireDate": "2021-12-12T16:00:00.000+0000",
         "note": "",
         "departmentName": ""
     }
 ]
}

3.3 选择部门 - selected_depart

触发原生
//单选-data:{}
//多选-data:{multi: true}
uni.sendNativeEvent("selected_depart",data, function(e){
    console.log("sendNativeEvent-----------回调"+JSON.stringify(e));
});
接收的参数
//使用 onNativeEventReceive 接收原生回调
{
    "name":"花海",
    "id":"1319175858820354048",
    "departmentName":"",
    "departmentId":"1318361205831766016",
    "enterpriseName":"",
    "position":"",
    "phone":"13311902104",
    "email":""
}

3.4 选择名片 - selected_card

触发原生
uni.sendNativeEvent("selected_card",{}, function(e){
    console.log("sendNativeEvent-----------回调"+JSON.stringify(e));
});
接收的参数
//使用 onNativeEventReceive 接收原生回调
{
    "name":"姚工",
    "company":"广东飞企互联科技股份有限公司",
    "department":"云平台创新开发部",
    "title":"部门经理",
    "addr":"广东省珠海市软件园路1号南方软件园B1栋5楼",
    "tel_cell":"18933305187",
    "tel_work":"07566866800",
    "email":"ylz@flyrise.cn"
}

3.5 选择园区 - selected_park

触发原生
uni.sendNativeEvent("selected_park",{}, function(e){
    console.log("sendNativeEvent-----------回调"+JSON.stringify(e));
});
接收的参数
//使用 onNativeEventReceive 接收原生回调
{
    "parkCode":"0mtyithe",
    "parkEntId":"1309331342667943936",
    "parkId":"1309331342667943937",
    "parkName":"开发测试园区",
    "parkAddress":"广东省珠海市香洲区南方软件园B6"
}

3.6 人脸采集 - face_acquisition

因为需要上传图片,所以需要传给原生接收图片的地址,以及参数

触发原生
let data = {
    url: 'http://upload/img',
    params: { //参数自定义,提交图片时,会带入参数
        "file": "img",
        "attId": "010102"
    }
}
uni.sendNativeEvent("face_acquisition",data, function(e){
    console.log("sendNativeEvent-----------回调"+JSON.stringify(e));
});
接收的参数
//使用 onNativeEventReceive 接收原生回调
{
    "parkCode":"0mtyithe",
    "parkEntId":"1309331342667943936",
    "parkId":"1309331342667943937",
    "parkName":"开发测试园区",
    "parkAddress":"广东省珠海市香洲区南方软件园B6"
}
文档更新时间: 2022-07-18 11:03   作者:陈冕