微信小程序想给每个页面都加上分享功能,可以全局的加吗?

news/2024/7/20 3:11:17 标签: 微信小程序, 小程序, 前端

每个页面都设置onShareAppMessage方法,让每个页面都可以分享

然后发现了一个wx.onAppRoute

wx.onAppRoute(() =>{
  console.log('当前页面路由发生变化 触发该事件onShareAppMessage')
  const pages = Taro.getCurrentPages() //获取加载的页面
  const view = pages[pages.length - 1] //获取当前页面的对象
  if(!view) return false //如果不存在页面对象 则返回
  // 若想给个别页面做特殊处理 可以给特殊页面加isOverShare为true 就不会重写了
  // const data = view.data
  // if (!data.isOverShare) {
    // data.isOverShare = true
    console.log(123123, view);
    Taro.showShareMenu({
      showShareItems: ['shareAppMessage', 'shareTimeline']
    })
    
    view.onShareAppMessage = () => { //重写分享配置
      return {
        title: 'AI 秀(show)出你的美',
        path: "/pages/index/index", //若无path 默认跳转分享页
        imageUrl: 'https://mobvoi-ai-public.cn-bj.ufileos.com/FOLDER/image/generation/2023-03-29/1641026841173315586.png',
      }
    }
    view.onShareTimeline = () => { //重写分享配置
      return {
        title: 'AI 秀(show)出你的美',
        path: "/pages/index/index", //若无path 默认跳转分享页
        imageUrl: 'https://mobvoi-ai-public.cn-bj.ufileos.com/FOLDER/image/generation/2023-03-29/1641026841173315586.png',
      }
    }
  // }
})

也可以全局监听页面路由。如果没有登陆并且需要注册就去注册页面

wx.onAppRoute((route) => {

    const protectedRoutes = [

      'pages/protected/1',

      'pages/protected/2',

      'pages/protected/3'

    ]

    if (!store.userLoggedIn() && protectedRoutes.find(r => route.path.includes(r))) {

      wx.redirectTo({

        url: '/pages/register/register'

      })

    }

 })


http://www.niftyadmin.cn/n/233011.html

相关文章

数据可视化有哪些方式?【图表类型大全】

我们通常所说的数据可视化是指狭义的数据可视化,即将数据以图表的方式进行呈现,常见于PPT、报表、新闻等场景。图表是数据可视化最基础的应用,它代表图形化的数据,通常以所用的图形符号命名,例如使用圆形符号的饼图、使…

数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年3月刊

本文为大家整理了墨天轮数据社区2023年3月发布的优质技术文章,主题涵盖Oracle、MySQL、PostgreSQL等数据库的基础安装配置操作、故障处理、性能优化等日常实践操作,以及概念梳理、常用脚本等总结记录,分享给大家: Oracle优质技术…

天天工作没时间,该如何备考信息系统项目管理师?

在备考2023年上半年软考的考生中,大多数都是一边上班一边带娃,兼顾事业与家庭还要提升自己的优秀人才。可是天天上班,哪还有时间去备考呢? 其实,你可以利用生活中的碎片时间进行复习。另外,还要把握好这些…

cocos creator v3.6版本使用Intersection2D模块的circleCircle方法

在cocos creator v3版本中Intersection2D模块的circleCircle方法可以用来检测两个圆形是否相交 该方法可以实现的功能有: cocos creator吸铁石实现、cocos creator物体在固定位置吸附、cocos creator物体吸附效果、cocos creator吸铁石实现、cocos creator两个物体时…

1.16 从0开始学习Unity游戏开发--人物控制

上一篇我们简单的做了一个玩家不动的情况下,如何控制准心来射击子弹,但是显然正常的游戏需要移动玩家本体,所以本篇我们需要补全这部分玩法所需的功能。 人物移动 在我们之前的篇章里面,讲解了如何通过物理引擎来实现物体的物理…

Android - LiveData(MutableLiveData)

一、介绍 LiveData是Jetpack提供的一种响应式编程组件,它可以包含任何类型的数据,并在数据发生 变化的时候通知给观察者。LiveData特别适合与ViewModel结合在一起使用,虽然它也可以单 独用在别的地方,但是在绝大多数情况下&#…

stm32学习第四天

DMA1:各个通道一览 DMA2:各个通道一览 1.stm32DMA相关固件库函数说明 第一个参数选择哪一个DMA的哪一个通道 初始化函数 void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct); typedef struct {uint32_t DMA_Periph…

IT培训有靠谱的机构吗,长什么样的?

关于IT培训的问题,网上有一大波劝退的声音:现在的IT越来越卷,高校计算机专业毕业生每年那么多,作为小白转行的你竞争力又在哪里呢?而且去年互联网大厂那么多裁员,还有大幅度降薪等等,IT行业已经…