微信小程序的分享配置
微信小程序的分享配置
关于在配置微信小程序的分享时遇到的问题
在开发微信小程序时,需要配置小程序的分享功能。这里记录一下在配置分享时遇到的问题。
分享配置,可以全局配置,也可以局部配置。
在微信官方,似乎并没有明确提供全局的分享配置,只能在每个页面中配置分享信息。但是我们可以通过一些技巧,实现全局分享的配置。
所以,官方也没有明确全局配置和局部配置的优先级,到底谁更大。在我看来,局部配置应该优先级更高,因为局部配置是在页面中配置的,更能方便的结合一些业务属性;而全局配置是在小程序启动时配置的。
全局配置
全局分享,需要在小程序的 app.js
中配置分享信息,这样所有页面都可以有相同的默认分享信息。毕竟你可以选择在个别页面中单独配置分享信息,而其他页面使用默认分享信息。
我们需要在其中注入一个自执行函数,这个函数会在小程序启动时执行,这样就可以在其中全局配置分享信息。
假如是 Taro 小程序,这个 app.js
文件就在 src/app.js
中。
/**
* @description 转发小程序 - 全局统一默认配置
*/
;(() => {
let PageTmp = Page
Page = function(pageConfig) {
// 设置全局默认分享
pageConfig = Object.assign(
{
onShareAppMessage: function() {
return {
title: '默认分享标题',
path: '/pages/index/index',
}
},
},
pageConfig
)
PageTmp(pageConfig)
}
})()
从代码上可以看出,我们在 Page
函数中,对 pageConfig
进行了修改,增加了 onShareAppMessage
方法,这个方法就是返回用一个对象来实现小程序的分享配置。进而实现全局分享配置。或许叫默认分享配置更合适。也是对应 @tarojs/taro
中的 onShareAppMessage 生命周期方法。
在这里使用 Object.assign
方法,重要的是要理解它是用于合并默认的分享配置与局部页面提供的 pageConfig
。在这合并中,我们需要将局部页面的配置具有更高的优先级,这意味着如果存在相同键的值,局部配置会覆盖全局配置。因此,当在特定页面中设置分享信息时,这些信息会覆盖默认设置。如果某个页面没有设置分享信息,则使用默认设置。如果合并顺序交换,将永远是全局配置。
全局配置中的局部配置
在全局配置中,我们可以通过一些技巧,实现局部配置。这样,我们可以在全局配置中,配置一些默认的分享信息,但是在某些页面中,我们可以覆盖这些默认的分享信息。