微信小程序 转发 自定义全局配置

本文介绍了如何在微信小程序中实现全局分享功能,通过定义公共变量和函数,让每个页面在转发时携带固定的参数,并提供独立页面的分享选项。关键步骤包括在app.js中设置全局分享逻辑和使用globalData存储配置信息。
摘要由CSDN通过智能技术生成

微信小程序自带的分享方法需要单个页面进行操作,这时候就很不方便,公司项目分享每个页面转发携带的参数都是一样的,所以想着写个公共的

这是我参考的大佬的文章:微信小程序-全局分享、自定义分享_glorious_future的博客-CSDN博客_微信小程序全局分享

app.js(这里的代码要写在App() 的外面)

//定义变量 获取转发的一些参数
let  config;
! function () {
  var PageTmp = Page
  Page = function (pageConfig) {
    let routerUrl = ""
    wx.onAppRoute(function (res) {
      let pages = getCurrentPages(),
        view = pages[pages.length - 1];
      routerUrl = view.route
    })
    pageConfig = Object.assign({
      onShareAppMessage: function () {
        //需要单独写分享方法的页面
        let noGlobalSharePages = ["pages/a/a", "pages/b/b"]
        //分享的时候要携带的参数
        let obj = {
          userId: config.user_name
        }
        let value = encodeURIComponent(JSON.stringify(obj))
        let shareObj = {}
        console.log("share",config);
        //判断当前页面是不是需要单独写分享方法的页面
        if (!routerUrl.includes(noGlobalSharePages)) {
          shareObj = {
            title: '和信签',
            path: '/pages/login/logs/logs',
            imageUrl: config.picUrl + config.shareImg
          }
        }
        return shareObj
      }
    }, pageConfig);
    PageTmp(pageConfig);
  }
}();

APP({
    globalData:...,
    onshow(){...}
})

 定义全局变量,在小程序初始化的时候把我需要用到的this.globalData赋值到定义的变量(config)上面

App({
  onLaunch: function () {
    .......
    //赋值
    config=this.globalData;
    ......
  },
  globalData:{
    shareImg:'....'
  }
})
//用的时候就是 config.shareImg这样就行啦

还有,如果想在某个页面里面写个单独的分享方法,就在js里面写个普通的onShareAppMessage就可以啦

onShareAppMessage(){
    return {
        title:'我是一朵花',
        path:'...',
        imageUrl:'...'
    }
}

这里有个小注意点,要是要实用全局配置,页面js里的分享方法onShareAppMessage(){}要删掉或者注释掉,要不是全局配置会被覆盖,不起作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值