微信小程序全局分享转发实现-无需页面单独设置

  • 微信小程序没有自带全局分享设置,页面开启分享功能必须要在页面中定义分享事件函数onShareAppMessage(分享给朋友)和onShareTimeline(分享至朋友圈)。如果项目中页面比较多,一个个去设置无疑是非常麻烦的,因此全局设置就非常有必要了。
  • 此时我们将代码放在app.js中,注意是放在APP({})的外面哦,可以放上面或者下面,随意
/**
  * 全局分享配置,页面无需开启分享
  * 使用隐式页面函数进行页面分享配置
  * 使用隐式路由获取当前页面路由,并根据路由来进行全局分享、自定义分享
  */
 ! function () {
  //获取页面配置并进行页面分享配置
  var PageTmp = Page
  Page = function (pageConfig) {
    //1. 获取当前页面路由
    let routerUrl = ""
    wx.onAppRoute(function (res) {
      let pages = getCurrentPages(),
        view = pages[pages.length - 1];
      routerUrl = view.route
    })

    //2. 全局开启分享配置
    pageConfig = Object.assign({
      onShareAppMessage: function () {
        //分享给朋友
        //根据不同路由设置不同分享内容(微信小程序分享自带参数,如非特例,不需配置分享路径)
        let shareInfo={}
        let noGlobalSharePages=["index/index"]
        //全局分享配置,如部分页面需要页面默认分享或自定义分享可以单独判断处理
        if (!routerUrl.includes(noGlobalSharePages)){
          shareInfo = {
            title: "分享时的文案",
            imageUrl: wx.getStorageSync("这里放分享时所带图片的地址")
          }
        }
        return shareInfo
      },
      onShareTimeline: function () {
        //分享至朋友圈
        let shareInfo={}
        let noGlobalSharePages=["index/index"]
        if (!routerUrl.includes(noGlobalSharePages)){
          shareInfo = {
            title: "分享时的文案",
            imageUrl: wx.getStorageSync("这里放分享时所带图片的地址")
          }
        }
        return shareInfo
      }
    }, pageConfig);
    // 配置页面模板
    PageTmp(pageConfig);
  }
}();

你可能感兴趣的:(微信小程序,微信小程序,小程序,javascript)