读心悦

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

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

2020年10月27日 243点热度 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日

读心悦

韦永愿的个人博客

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

文章评论

您需要 登录 之后才可以评论

读心悦

韦永愿的个人博客

标签聚合
JavaScript redux vue mysql taro Nginx canvas 悦读 阅读 随笔 CSS react flutter 闲谈 node git 小程序 Echarts hook
分类
  • flutter (11)
  • html/css (23)
  • Javascript (32)
  • Mysql (2)
  • node (2)
  • React (29)
  • vue (1)
  • 小程序 (43)
  • 悦读 (8)
  • 未分类 (2)
  • 读心里话 (12)
最新 热点 随机
最新 热点 随机
JavaScript的深浅拷贝【笔记】 最近的一些心里事儿 JavaScript的Object数据类型转换 JavaScript中 + 隐式类型转换 JavaScript的== 的隐式类型转换 JavaScript数据强制类型转换
微信小程序设置体验版本和线上版本的访问地址JavaScript颜色的工具函数redux简单的笔记JavaScript的数据类型如果有来生JavaScript数据强制类型转换
ES6数组的扩展 withRouter解决react组件history、location、match丢失的问题 《坚持,一种可以养成的习惯》阅读笔记 css关于居中的方式 微信小程序转发朋友圈onShareTimeline() 微信小程序金额输入限制

COPYRIGHT © 2020 读心悦

黔ICP备20005501号

黔公网安备52011502001078号