[转]微信小程序全局分享转发控制实现——从此无需页面单独配置 - 逍遥云天 - 博客园
关于支付宝全局自定义分享控制详见:支付宝小程序的携带参数全局分享实现。
为什么要写这篇文章?
微信小程序没有全局分享配置,页面开启分享功能必须要在页面中定义分享事件函数 onShareAppMessage 才可以。如果项目中对页面分享的需求比较复杂点,那么默认的自定义分享会很麻烦的,而且还不一定能满足我们的需求,因此全局自定义分享配置的实现就非常有必要了。
不仅仅能实现全局分享,还可以对不同页面实现不同的分享配置
本例结合隐式路由,可实现全局控制所有页面的分享配置,包括全局分享、页面默认分享、页面自定义分享,如下图所示:
如上,一部分页面可以进行自定义分享,另一部分进行页面默认分享(相当于页面开启分享功能,但是没有进行配置),其他大部分页面都进行全局分享配置。
示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | // app.js /** * 全局分享配置,页面无需开启分享 * 使用隐式页面函数进行页面分享配置 * 使用隐式路由获取当前页面路由,并根据路由来进行全局分享、自定义分享 */ ! function () { //获取页面配置并进行页面分享配置 var PageTmp = Page Page = function (pageConfig) { //1. 获取当前页面路由 let routerUrl = "" wx.onAppRoute( function (res) { //app.js中需要在隐式路由中才能用getCurrentPages()获取到页面路由 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( "shareUrl" ) } } return shareInfo } }, pageConfig); // 配置页面模板 PageTmp(pageConfig); } }(); |
注意事项:
1.本例中使用了 getCurrentPages() 函数获取页面路由,但是app.js中需要放在隐式路由 wx.onAppRoute() 的回调中才能获取到;
2.使用本例方法,无需页面中配置 onShareAppMessage() ,如页面中配置分享事件函数,则会覆盖全局分享。
---------------------
作者:逍遥云天
来源:CNBLOGS
原文:https://www.cnblogs.com/xyyt/p/12614181.html
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2020-04-21 [转]SQL SERVER2017|2019 安装程序无法与下载服务器联系。无法安装机器学习服务的问题解决方式