微信小程序全局分享转发控制实现——从此无需页面单独配置
时间:2020-04-01
本文章向大家介绍微信小程序全局分享转发控制实现——从此无需页面单独配置,主要包括微信小程序全局分享转发控制实现——从此无需页面单独配置使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
微信小程序没有全局分享配置,页面开启分享功能必须要在页面中定义分享事件函数 onShareAppMessage 才可以。如果项目中对页面分享的需求比较复杂点,那么默认的自定义分享会很麻烦的,而且还不一定能满足我们的需求,因此全局自定义分享配置的实现就非常有必要了。
本例结合隐式路由,可实现全局控制所有页面的分享配置,包括全局分享、页面默认分享、页面自定义分享,如下图所示:
如上,一部分页面可以进行自定义分享,另一部分进行页面默认分享(相当于页面开启分享功能,但是没有进行配置),其他大部分页面都进行全局分享配置。
示例代码:
1 // app.js 2 /** 3 * 全局分享配置,页面无需开启分享 4 * 使用隐式页面函数进行页面分享配置 5 * 使用隐式路由获取当前页面路由,并根据路由来进行全局分享、自定义分享 6 */ 7 ! function () { 8 //获取页面配置并进行页面分享配置 9 var PageTmp = Page 10 Page = function (pageConfig) { 11 //1. 获取当前页面路由 12 let routerUrl = "" 13 wx.onAppRoute(function (res) { 14 let pages = getCurrentPages(), 15 view = pages[pages.length - 1]; 16 routerUrl = view.route 17 }) 18 19 //2. 全局开启分享配置 20 pageConfig = Object.assign({ 21 onShareAppMessage: function () { 22 //根据不同路由设置不同分享内容(微信小程序分享自带参数,如非特例,不需配置分享路径) 23 let shareInfo={} 24 let noGlobalSharePages=["index/index"] 25 //全局分享配置,如部分页面需要页面默认分享或自定义分享可以单独判断处理 26 if (!routerUrl.includes(noGlobalSharePages)){ 27 shareInfo = { 28 title: "自定义全局分享", 29 imageUrl: wx.getStorageSync("shareUrl") 30 } 31 } 32 return shareInfo 33 } 34 }, pageConfig); 35 // 配置页面模板 36 PageTmp(pageConfig); 37 } 38 }();
如上,无需页面开启和配置,只需要在app.js中编写以上代码,即可对所有页面进行自定义分享配置,从此无需再去页面开启、配置分享转发。
原文地址:https://www.cnblogs.com/xyyt/p/12614181.html
- 移动商城第七篇【购物车增删改查、提交订单】
- Shiro入门这篇就够了【Shiro的基础知识、回顾URL拦截】
- OFTest(一):如何忽略一些字段在端口poll报文
- Shiro第二篇【授权、整合Spirng、过滤器】
- Ajax数据的爬取(淘女郎为例)
- 在IDEA中编写Spark的WordCount程序
- Shiro第三篇【授权过滤器、与ehcache整合、验证码、记住我】
- Spark核心RDD、什么是RDD、RDD的属性、创建RDD、RDD的依赖以及缓存、
- Caused by: java.net.ConnectException: Connection refused: master/192.168.3.129:7077
- java.util.zip.ZipException: invalid LOC header (bad signature)
- 递归就这么简单
- Activiti就是这么简单
- WebService就是这么简单
- eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任务
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php使用json-schema模块实现json校验示例
- 17个品牌,113款5G手机,5G离我们越来越近。
- PHP的cookie与session原理及用法详解
- Thinkphp5.0框架视图view的循环标签用法示例
- Thinkphp5.0 框架视图view的比较标签用法分析
- laravel 操作数据库常用函数的返回值方法
- laravel 验证错误信息到 blade模板的方法
- thinkPHP+LayUI 流加载实现功能
- Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
- laravel5.2表单验证,并显示错误信息的实例
- ThinkPHP 5.1 跨域配置方法
- PHP调用接口API封装的例子
- php-fpm超时时间设置request_terminate_timeout资源问题分析
- laravel框架添加数据,显示数据,返回成功值的方法
- PHP的静态方法与普通方法用法实例分析