onLoauch 和 onShow函数
onLaunch全局只触发一次。除非手动关闭微信,否则一直在后台运行。下次打开不会触发onLaunch,所以推荐放在onShow中。
//app.js
App({
onLaunch: function (options) {
// ....
},
onShow: function (options) {
console.log('onShow',options)
this.globalData.scene = options.scene;
if (options.scene == 1007 || options.scene == 1008) {
// 通过单人会话或群聊会话分享进入
}
},
globalData: {
scene:''
}
})
home.js
onLoad() {
console.log('场景值:',getApp().globalData.scene)
},
wx.getLaunchOptionsSync()
wx.getLaunchOptionsSync()获取场景值第二次进入不会刷新,一直都是1001。
解决方法:getLaunchOptionsSync() 改成了getEnterOptionsSync()。
onLoad() {
var obj = wx.getEnterOptionsSync()
console.log('obj',obj)
console.log('obj.referrerInfo',obj.referrerInfo)
console.log('obj.scene',obj.scene)
},
默认打开页面是1001。
通过好友聊天窗进来是1007,如果是群里进来就是1008
onShareAppMessage
<button open-type="share">分享</button>
onShareAppMessage: function () {
return {
title: '',
path: `pages/detail/index?id=${this.data.id}&share=1`,
imageUrl: '',
success: (res) => {},
fail: (res) => {}
}
}
onLoad: function (options) {
const share = options.share
if(share == 1) {
// 分享卡片进来的
}
},