微信小程序和另一个小程序之间的跳转及如何传参交互

最近开发中有个业务需求需要跟别的小程序之间进行交互跳转传参,写此篇记录一下然后看能不能给到别人一些帮助
首先我们先了解一下微信小程序要跳转小程序的api文档
wx.navigateToMiniProgram
这里讲一下需要注意的地方
小程序之间传参可以通过两个地方传path携带query和extraData对象
用path的query传参在传递的path路由页面的onLoad生命周期回调中就能接受到啦 例如

wx.navigateToMiniProgram({
appId: '需要跳转到目标小程序appid'
path: 'pages/index/index?name=' + 111,
envVersion: 'trial' //体验版trial 正式release
)
//另一个小程序pages/index/inde页面中load生命周期接受到参数
onLoad(options) {
	let name = options.name
}

而使用extraData的话就需要app的全局onShow或onLaunch接收了,这里可以通过两种方式监听onShow回调接收extraData参数
1,直接在app的onShow生命周期回调中接收代码如下

onShow (options) {
	//这里就是接收到的参数啦
   let data = options.referrerInfo.extraData || {}
  },

2,另一种是通过本页面监听,小程序有个api wx.onAppShow(callback)本质上跟app的onShow方法是一样的,我们可以在本页面的onLoad中调用wx.onAppShow监听,然后记得在页面卸载之前取消监听哦 使用 wx.offAppShow取消监听
这种方式比较推荐 因为业务逻辑在本页面就能掌控了
3,假设有个小程序使用上面api跳过来 我们可以通过back的形式返回跳过来的小程序 相应的api wx.navigateBackMiniProgram参数看文档就行
要带参数的话从extraData带上 另一个小程序一样在app的onShow上能监听到
4,最后有个注意的小细节,我们开发的时候用的是体验版测试的 跳转时候envVersion这个参数 需要更换为trial才能跳到对方的体验版,正式版小程序一定是跳正式。

好啦,大概需要注意的就这些啦,有啥疑问可以提问

你可能感兴趣的:(小程序,uni-app,javascript)