初六复工,难以接受,我甚至能接受今天是我六十大寿但是我难以接受今儿是正月初六。

言归正传

年前写了个分享,还要所有的页面都要有分享,那我岂不是每个页面都要写一个onShareAppMessage?nonono,这不能这么干,这违背了我们少写一行是一行的理念。
所以,我得写个全局的分享,但是这个onShareAppMessage的触发点只有button和胶囊的三个点点,所以并不是简单的写个公共方法就能解决的事儿。

经过不懈的研究,写了以下demo,供大家参考。

首先呢这个方法得写在app.js里面

app.js

//这个function是要写在APP()的外面
!function () {var PageTmp = PagePage = 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={}//判断当前页面是不是需要单独写分享方法的页面if (!routerUrl.includes(noGlobalSharePages)){shareObj={title:config.text,path: 'pages/home/home?obj=' +value,imageUrl: config.ShareImg}}return shareObj}}, pageConfig);PageTmp(pageConfig);}
}();APP({globalData:...,onshow(){...}
})
这个方法就基本成型了

然后呢,我在写的时候遇到了个小问题,就是我在这个方法里面拿不到globalData的数据,所以我就定义了个全局变量,在小程序初始化的时候把我需要用到的this.globalData赋值到我定义的变量上面

let config;
APP({onLunch(){// 赋值config=this.globalData;},globalData:{user_name:'..',text:'...',ShareImg:'....'}
})
用的时候就是 config.text这样就行啦

这样的话,想用这个方法得页面就不能在页面的js里面写onShareAppMessage了,不然会把app.js里面的分享方法给覆盖掉

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

mine.js

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

这就大功告成啦!!

微信小程序-全局分享、自定义分享相关推荐

  1. uniapp实现微信小程序全局【发送给朋友】、【分享到朋友圈】、【复制链接】

    在开发微信小程序的时候,发现[发送给朋友].[分享到朋友圈].[复制链接]功能,灰色不可用. 很常见的功能,但是这几个功能,并不是你项目建起来了就有的. 1.[发送给朋友]使用 onShareAppM ...

  2. 微信小程序点击按钮分享指定页面

    微信小程序点击按钮分享指定页面 1.在wxml里写所要点击的按钮 <button data-info='{{order}}' open-type="share" hover- ...

  3. 微信小程序之短连接 分享转发 点击短连接就可以直接打开小程序某个页面

    微信小程序之短连接 分享转发 点击短连接就可以直接打开小程序某个页面 首先,小程序官网地址:https://developers.weixin.qq.com/miniprogram/dev/OpenA ...

  4. 微信小程序 解决内层页面分享出去后 用户无法通过分享页面返回首页问题

    微信小程序 解决内层页面分享出去后 用户无法通过分享页面返回首页问题 本质就是设置一个变量isshare来判断是否是分享页面中进入的 data设置 isshare: 0,//不是分享页面进入 js o ...

  5. h5app多功能商城源码可二开微信小程序商城开源版分享

    基于ThinkPhp6.0+uniapp 开发的一套新零售商城系统.集客户关系管理+营销电商系统,能够真正帮助企业基于微信公众号.小程序.wap.pc等,实现会员管理.数据分析,精准营销的电子商务管理 ...

  6. 移动端App分享,以及微信小程序和公众号分享功能实现

    移动端App分享,以及微信小程序和公众号分享功能实现 分享功能记录收藏,上链接 前端工作记录

  7. 微信小程序----全局状态管理 (便于全局埋点等操作)

    说明 由于我是一个有着一颗玻璃心的博主,导致在2018年后博客很少更新.原因是由于我的分享并没有解决到部分人的问题,而导致被骂了.当时这颗玻璃心就碎了,所以这两年以来很是消极,博客很少更新.这里给那些 ...

  8. 微信小程序之callout自定义气泡

    最近闲着踩踩地图的坑,一脚下去差点没从坑里爬起来,然后由于某个原因,去研究了微信小程序里面地图callout 这个属性 callout呢,是在标记的点上面显示 一个 气泡,作为提示用 最后展示下 效果 ...

  9. php小程序开发实例,微信小程序全局配置开发实例

    本文主要和大家分享微信小程序全局配置开发实例,主要以代码的形式和大家分享,希望能帮助到大家. 一.app.json 使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设 ...

  10. 微信小程序用vant自定义tabbar页面并跳转相应页面

    0.前置安装 步骤一 安装 vant 组件库 npm i @vant/weapp -S --production 下载完后要npm构建才能使用 步骤二 修改 app.json 将 app.json 中 ...

最新文章

  1. 基于深度学习方法的3D数据合成
  2. 算法笔记1-最大子序列和问题的求解
  3. Go实现查找目录下(包括子目录)替换文件内容
  4. Linux学习笔记Sed最全整理
  5. Lethean结点搭建
  6. 详解Python线程对象daemon属性对线程退出的影响
  7. IIS7 应用程序池自动回收关闭的解决方案
  8. python基础教程廖雪峰云-Python 爬虫:把廖雪峰的教程转换成 PDF 电子书
  9. 华为鸿蒙os2.0系统beta,华为发布HarmonyOS 2系统:万物互联时代鸿蒙大一统
  10. 常用机器学习算法汇总
  11. 一个按键控制数码管的开和关_单片机是否能用一个按键控制数码管的显示图?...
  12. ubuntu下安装 Source insight
  13. 2018-2019-1 20189204《Linux内核原理与分析》第二周作业
  14. c语言教程英文版讲义,c语言教程英文版讲义(六)1.pdf
  15. Linux应用开发自学之路
  16. python期货量化交易_基于vnpy搭建期货量化交易机器人(一)准备工作
  17. CSDN愈来愈金钱化
  18. 快捷键大全(实用版)
  19. 函数调用之特殊三位数
  20. 第二部分 音频压缩编码

热门文章

  1. C# 强化系列文章四:匿名方法的使用
  2. 关于Gitlab恼人的Git无权限访问问题解决
  3. 2.4 线性丢番图方程
  4. 百度网盘不限速方法 直接跑满带宽
  5. 2018 icpc 焦作站现场赛 E题题解
  6. css div里引用em字体会变斜体_DIV+CSS怎么样改字体样式
  7. 计算机efs加密,win7系统对文件启用EFs加密功能的处理办法
  8. 启动Storm的nimbus和supervisor时报错: ImportError: No module named argparse
  9. linux下的office 速度慢,Microsoft office2016打开很慢解决
  10. 翻译小窍门-谢谢你勾引我老公