微信小程式之間的跳轉及如何傳參互動

weixin_47242652發表於2020-11-19

最近開發中有個業務需求需要跟別的小程式之間進行互動跳轉傳參,寫此篇記錄一下然後看能不能給到別人一些幫助
首先我們先了解一下微信小程式要跳轉小程式的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才能跳到對方的體驗版,正式版小程式一定是跳正式。

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

相關文章