官方地址
开始之前,开发者先了解:
HBuilderX
:官方IDE下载地址uni-app
: 官方教程文档uni-app 适配
:屏幕适配注意事项uni-app 跨平台
:多平台开发方案uni-app 插件市场
:DCloud 插件市场uni-app 社区
:DCloud 官方问答社区
默认模板介绍
默认组件库:uView文档
默认组件库使用
npm
加载的,所以需要在HBuilder
的终端中运行npm i
- 快捷键
ALT + C
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
- 小程序启动 时 传参数;
- 小程序启动 后 传参数。
小程序启动时
接收原生参数
- 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 作者:陈冕