小程序全局分享onShareAppMessage
在app.js内 写一个方法 用wx.onAppRoute监听路由变化 每当路由变化时 给当前页面重新写入一个onShareAppMessage分享配置 再将该方法放在app.js内的onLaunch中去执行 这样就能全局分享啦 让每个页面分享的标题 内容 图片都一样了 如果你想个别页面不需要重写 你可以看看我注释的地方
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
onLaunch(){ this.onShareAppMessage() }, onShareAppMessage(){ wx.onAppRoute(() =>{ console.log('当前页面路由发生变化 触发该事件onShareAppMessage') const pages = getCurrentPages() //获取加载的页面 const view = pages[pages.length - 1] //获取当前页面的对象 if(!view) return false //如果不存在页面对象 则返回 // 若想给个别页面做特殊处理 可以给特殊页面加isOverShare为true 就不会重写了 // const data = view.data // if (!data.isOverShare) { // data.isOverShare = true view.onShareAppMessage = () => { //重写分享配置 return { title: '微信小程序全局分享', path: "/pages/home/index", //若无path 默认跳转分享页 imageUrl:'/image/onshowMessage.png' //若无imageUrl 截图当前页面 } } // } }) }, |
onload 的触发场景
1 2 3 4 |
1.打开小程序进入该页面时候 (此时点击tabbar中的每一项都会执行onload, 从点击过了的tab项再进入其它点击过的tab项,不会执行 onload) 2.修改代码点击保存的时候会 onload 3.页面跳转(带参数,因为页面只能通过onload(option)方法中options 获取参数) 4.wx.navigateTo和wx.redirectTo及<navigator/>中带有 query参数,注意wx.switchTab要跳转到的页面已经被打开过,不会触发onload |
onshow 的触发场景
1 |
每次打开页面都会调用一次(页面加载好之后 你切到其他页面 再回来 显示这个页面 之前加载过的话 onLoad就不跑了 这是页面信息呈现在你面前的这个过程 会跑onShow ) |
感谢大佬:https://blog.csdn.net/weixin_45815859/article/details/111591369