官方地址

Pai 工具介绍

开始之前,开发者先了解:

默认模板介绍

  • 默认组件库:uView文档

    默认组件库使用 npm 加载的,所以需要在HBuilder的终端中运行 npm i

    1. 快捷键 ALT + C
    2. HBuilder工具栏 > 视图 > 显示终端
  • 默认网络框架:luch-request 3.x文档

  • 常用系统API封装:/common/flyrise.js。

重定向介绍

​ uniapp默认进入page.js配置的首页,当带上path是,默认会进入相应界面,但会存在返回键、返回去到首页等问题。需要重定向。

  • 定义变量isRedirect:

    data() {
            return {
                isRedirect:false
            }
        }
  • 重定向隐藏返回键:

    onLoad(e) {
                this.isRedirect = e.action === "redirect"
                redirect.start(this, e)
            }
  • 监听手机返回键事件:

    onBackPress() {
                if (this.isRedirect) {
                    plus.runtime.quit()
                    return true;
                }
                return false;
            }

原生交互

注意:小程序接收的界面不能放在 pages.json > pages 数组的第一个,不然可能会接收不到消息。

小程序传参有两种:小程序 API

  1. 小程序启动 传参数;
  2. 小程序启动 传参数。

小程序启动时

接收原生参数

  • token:用户唯一值(带前缀的)
  • userName:用户名
  • name:昵称、公司员工为真实姓名
  • phone:手机号
  • userId:用户 Id
  • entId:企业 Id
  • entName:企业名称
  • selectedUserId:(云考勤)选中的用户,部分界面会用到
  • code:加入企业时,传扫码得到的 code
  • mail:加入企业时,传邮箱
  • tokenValue:唯一值(不带前缀的)
  • join_ent_success:企业加入成功
  • parkId: 园区 Id
  • parkName:园区名称
//_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);
        }
}

接收监听位置

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

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

小程序启动后

EventKey

  • 刷新token:refresh_token
  • 调用支付:open_pay
  • 选择部门:selected_depart
  • 选择人员:selected_person
  • 选择园区:selected_park
  • 选择名片:selected_card

小程序传值给原生-安卓

//小程序js层发送事件给宿主
uni.sendNativeEvent("aa",a, 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( "测试数据");
    }
});

原生传值给小程序-安卓

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

//uni小程序JS代码 监听宿主触发给小程序的事件
uni.onNativeEventReceive(function(event, data){
    console.log("onNativeEventReceive----="+event);
});

刷新 Token - refresh_token

{
    "isSuccess":true,
    "token":"bearer 475a2db1-00d4-4058-a8d2-77d5e33839dd"
}

选择人员 - selected_person

{
    "name":"花海",
    "id":"1319175858820354048",
    "departmentName":"",
    "departmentId":"1318361205831766016",
    "enterpriseName":"",
    "position":"",
    "phone":"13311902104",
    "email":""
}

选择部门 - selected_depart

{
    "name":"花海",
    "id":"1319175858820354048",
    "departmentName":"",
    "departmentId":"1318361205831766016",
    "enterpriseName":"",
    "position":"",
    "phone":"13311902104",
    "email":""
}

选择名片 - selected_card

{
    "name":"姚工",
    "company":"广东飞企互联科技股份有限公司",
    "department":"云平台创新开发部",
    "title":"部门经理",
    "addr":"广东省珠海市软件园路1号南方软件园B1栋5楼",
    "tel_cell":"18933305187",
    "tel_work":"07566866800",
    "email":"ylz@flyrise.cn"
}

选择园区 - selected-park

{
    "parkCode":"0mtyithe",
    "parkEntId":"1309331342667943936",
    "parkId":"1309331342667943937",
    "parkName":"开发测试园区",
    "parkAddress":"广东省珠海市香洲区南方软件园B6"
}
文档更新时间: 2022-04-22 14:04   作者:陈冕