读心悦

  • 读心随笔
  • 读心里话
  • 计算机
  1. 首页
  2. 小程序
  3. 正文

微信小程序之间跳转遇到的坑

2020年10月27日 155点热度 1人点赞 0条评论

如果在小程序之间设置跳转的话,那么就是涉及到小程序的运行机制、小程序生命周期的问题:

前台和后台

前台是在小程序启动之后,页面呈现给用户时小程序处在“前台”的状态;

后台时是在我们关闭小程序或者是离开小程序的时候,小程序没有终止运行,而是处于“后台”的状态,依旧在运行一段时间。当然,如果我们在很长一段时间内没有进入小程序或者是微信的系统资源紧张时,小程序才会被销毁【终止运行】。

那么小程序的启动方式可以划分为两种:

1、冷启动:我们首次进入小程序或者是在小程序被销毁之后进入小程序,这时候打开的小程序是需要重新加载启动。这样的启动方式称之为冷启动;

2、热启动:在短时间内再次打开小程序,这时小程序没有被销毁,只是从后台进到前台而已

 

 

两个小程序之间的跳转:

wx.navigateToMiniProgram():打开目标小程序,可以通过两种方式给目标小程序传递参数

一、通过path路径中?后的部分设置参数,在目标小程序中的App.onLaunch、App.onShow 和 Page.onLoad的回调函数获取这些参数,或者是通过wx.getLaunchOptionsSync()方法获取参数

二、通过wx.navigateToMiniProgram()方法的extraData属性向目标小程序传递参数,这些参数在目标小程序的App.onLaunch,App.onShow中获取,或者是wx.getLaunchOptionsSync()方法中获取这份参数。

 

wx.navigateBackMiniProgram():返回上一个小程序,在extraData属性中设置参数,在上一个小程序中的App.onShow获取参数。

在两个小程序之间获取对方传递的完整参数,是在App.onShow()中获取,而App()只能在app.js中设置,那所获取到的参数只能赋值给全局变量了【globalData】,然后在需要参数的页面中通过getApp()获取全局参数。

如果不想从app.js中获取数据,也可以在当前页面中获取参数【需要使用wx.getLaunchOptionsSync()和wx.getEnterOptionsSync()】

wx.getLaunchOptionsSync():获取小程序启动时的参数,这个方法只获取到冷启动时的参数;

wx.getEnterOptionsSync():获取小程序启动时的参数,这个方法可以获取冷启动或者是热启动时传递参数

如果从小程序A跳转到小程序B的时,在短时间内返回小程序A,那么建议使用wx.getEnterOptionsSync()获取小程序B返回的参数,如果A跳转到B之后,很长一段时间后【小程序A已经被销毁了】才返回,可以使用wx.getLaunchOptionsSync()方法,也可以使用wx.getEnterOptionsSync()方法获取参数

 

 

 

赞微海报分享
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 小程序
最后更新:2020年10月27日

读心悦

自己从事开发也有一段时间了,总有一些迷茫,对未来有一点恐惧,不知道以后会不会继续从事开发的岗位。无论未来做出怎样的选择,这个网站就记录一下从事开发这段时间的一些笔记、阅读笔记吧,好歹也给自己留个纪念吧,你说呢! 写点代码,读点书,读点心,读点自己!

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

读心悦

自己从事开发也有一段时间了,总有一些迷茫,对未来有一点恐惧,不知道以后会不会继续从事开发的岗位。无论未来做出怎样的选择,这个网站就记录一下从事开发这段时间的一些笔记、阅读笔记吧,好歹也给自己留个纪念吧,你说呢! 写点代码,读点书,读点心,读点自己!

标签聚合
git 随笔 redux vue node taro 闲谈 阅读 Nginx flutter canvas react CSS mysql JavaScript Echarts 悦读 小程序 hook
推荐文章
  1. 微信小程序中自定义导航和地图定位
  2. 小程序跳转另外一个小程序
  3. 小程序全局和局部自定义导航栏样式
  4. 微信小程序前端解密获取用户信息
分类
  • flutter (11)
  • html/css (23)
  • Javascript (22)
  • Mysql (2)
  • node (2)
  • React (27)
  • vue (1)
  • 小程序 (41)
  • 悦读 (8)
  • 未分类 (2)
  • 读心里话 (9)

COPYRIGHT © 2020 读心悦

黔ICP备20005501号

黔公网安备52011502001078号