用途
在两个页面之间需要传递大量数据时的页面间通信 — 并非真正意义上的全局消息中心
有可能的使用场景:
1.数据预加载(在前一个页面加载好数据后传递给后一个页面)
2.传递用户数据(比如保存草稿或者带出用户选择的数据)
常用API
直接参考小程序官方文档 点击这里跳转
如何使用
step1:在第一个页面的路由跳转中注册事件
如图所示:在其中加入 events属性 它的key值就是注册事件的名称
step2:在第二个页面的生命周期内订阅事件
在onLoad, onShow内都可以
兼容性
基础库 2.7.3 开始支持
低于这个版本会抛错 所以使用之前一定在app.js 全局检查 是否适用 不适用的情况要提醒用户升级微信
兼容性检查代码(已经封装好了)
class Compatible {
constructor() {
}
compareVersion(v1, v2) {
v1 = v1.split('.')
v2 = v2.split('.')
const len = Math.max(v1.length, v2.length)
while (v1.length < len) {
v1.push('0')
}
while (v2.length < len) {
v2.push('0')
}
for (let i = 0; i < len; i++) {
const num1 = parseInt(v1[i])
const num2 = parseInt(v2[i])
if (num1 > num2) {
return 1
} else if (num1 < num2) {
return -1
}
}
return 0
}
SDKVersion() {
return wx.getSystemInfoSync().SDKVersion
}
EventChannel() {
return new Promise((resolve, reject) => {
if (this.compareVersion(this.SDKVersion(), '2.7.3') < 0) {
wx.showModal({
title: '温馨提示',
content: '当前微信版本过低,请尽快升级您的微信版本',
showCancel: false,
cancelColor: '#000000',
confirmText: '我明白了',
});
reject()
} else {
resolve()
}
})
}
}
export default new Compatible()
使用