总结一个微信小程序跳转到另一个微信小程序

目录

需求

目前有两个微信小程序,小程序A和小程序B,小程序B是不能分享页面的,因为该小程序是给内部人员使用的,但是呢,需要实现B分享A的某一页面,并且该页面的数据由B控制。

解决

思路

目前B要做的事情是在跳转到A的同时将B获取到的数据传递给A,A拿到数据后,将该数据展示到A的某一页面中,然后分享A的这一个页面。

注意事项

1、首先两个小程序需要绑定同一个公众号,以免跳转不成功或是被封号。

2、两个小程序的功能不能太单一。

3、跳转引导的面积不要太大。

实现

页面跳转

小程序之间跳转的方式有两种,需要先获取A小程序的appid,该appid需要在app.json中设置一下。还可以使用 shortLink,及小程序链接,当传递该参数后,可以不传 appId 和 path。建议使用appId。

javascript 复制代码
  "window": {
    "navigateToMiniProgramAppIdList": [
      "A小程序的appId"   
    ]
  },

跳转的相关代码

javascript 复制代码
  shareOrder(){
    wx.navigateToMiniProgram({
      appId: 'A小程序的appId',
      path: 'p_order/order_share/order_share',
      envVersion: 'release',//上线版,开发版develop
      success(res) {
      console.log('跳转成功')
      }
    })
  }
传递数据

小程序跳转的传参方式有两种,一种是路径上传参,一种是利用extraData。

使用extraData传参,目标小程序可在 App.onLaunch,App.onShow 中获取到这份数据。如果跳转的是小游戏,可以在 wx.onShow、wx.getLaunchOptionsSync 中可以获取到这份数据数据。

javascript 复制代码
  extraData: {
    foo: 'bar'
  }

使用路径上拼接传参可在页面的onLoad中拿到,及options内,由于路径传参可以放的数据是有限的,所以可以将数据以JSON格式传过去。

javascript 复制代码
    let detail = JSON.stringify(orderDetail)
    wx.navigateToMiniProgram({
      appId: 'A小程序的appId',
      path: 'p_order/order_share/order_share?detailinfo='+detail,
      envVersion: 'release',
      success(res) {
      }
    })

使用JSON.stringify将数据转换为json格式时会出现很多问题,因为我们的数据可能会很乱,所以我建议将需要的数据都整合到另一个对象的同一层中,再进行转换。

JSON.stringify的转换规则可以参考转换规则

接收参数

在小程序A的目标页面的onLoad拿到传过来的数据,再将json数据转换成对象。

javascript 复制代码
let data = JSON.parse(options.detailinfo)

拿到数据后,就可以在页面上运用。

转发功能

小程序的页面转发也是需要传递数据的,即在该页面的onShareAppMessage中传递数据,这里要传的数据和在小程序B中要传的数据一样即可,仍然使用路径拼接传递参数。

javascript 复制代码
  onShareAppMessage() {
    let detailinfo = JSON.stringify(this.data.detailInfo)
    return {
      title: '转发页面的标签名',
      path: 'p_order/order_share/order_share?detailinfo=' + detailinfo
    }
  }

按正常情况下的分享,我们需要在onLoad中拿到数据进行如下操作,但是刚刚已经处理过了,所以不用再处理。

javascript 复制代码
let data = JSON.parse(options.detailinfo)

需要注意的是,小程序跳转传的参数是跳转时当时的数据,所以无论小程序B的数据在跳转之后有没有发生变化,那一页的数据都不会改变。
另一个需要注意的点就是跳转到小程序A之后就不能使用小程序B的接口了哈,虽然这是一个常识,但也免不了会有人忘记。

相关推荐
一 乐4 小时前
英语词汇小程序小程序|英语词汇小程序系统|基于java的四六级词汇小程序设计与实现(源码+数据库+文档)
java·数据库·小程序·源码·notepad++·英语词汇
互联网时光机7 小时前
微信小程序和抖音小程序的分享和广告接入代码
微信小程序·小程序·游戏程序
一 乐10 小时前
考研论坛平台|考研论坛小程序系统|基于java和微信小程序的考研论坛平台小程序设计与实现(源码+数据库+文档)
java·数据库·学习·考研·微信·小程序·源码
VXbishe13 小时前
(附源码)基于springboot的“我来找房”微信小程序的设计与实现-计算机毕设 23157
java·python·微信小程序·node.js·c#·php·课程设计
大三觉醒push亡羊补牢女娲补天版14 小时前
微信小程序常见问题
微信小程序·小程序
漏刻有时15 小时前
微信小程序学习实录9:掌握wx.chooseMedia实现多图片文件上传功能(选择图片、预览图片、上传图片)
学习·微信小程序·notepad++
hmz85615 小时前
最新网课搜题答案查询小程序源码/题库多接口微信小程序源码+自带流量主
前端·微信小程序·小程序
小雨cc5566ru18 小时前
uniapp+Android智慧居家养老服务平台 0fjae微信小程序
android·微信小程序·uni-app
计算机学姐19 小时前
基于微信小程序的调查问卷管理系统
java·vue.js·spring boot·mysql·微信小程序·小程序·mybatis
正小安1 天前
如何在微信小程序中实现分包加载和预下载
前端·微信小程序·小程序