taro微信小程序跳转另一个小程序(参数接收、销毁,清除缓存) - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 小程序相关 >

taro微信小程序跳转另一个小程序(参数接收、销毁,清除缓存)

发表时间:2020-9-28

发布人:葵宇科技

浏览次数:113

还有很多东西没整理,接着来~

场景:a小程序要去b小程序的一个表单页,且携带参数(跳过去时默认把信息带过去填到表单里)
进入表单页后,用户可以用a小程序带过去的信息提交表单(这是a进入b的唯一目的,就是携带参数使用b的表单页提交东西)
当然也可以不提交,离开当前页直接进入b的首页,从b的其他页也可以进入这个表单页,携带相应的参数,再进行提交(此时 属于用户在b里交互,跟a就没关系了)

a:

 toOtherProgram () {
    Taro.navigateToMiniProgram({
      appId: '',//b小程序的appID 两个小程序必须关联在同一个公众号下
      path: 'pages/Message/index',//跳转到b的页面
      extraData: {//想要传递的值
        spotId,
        spotName
      },
      envVersion: 'release',//跳转到b的正式版
      //envVersion: 'develop',//跳转到b的开发版
      //envVersion: 'trial',//跳转到b的体验版
      success: function(res) {
      },
      fail: function(res) {
      }
    })
  }

b:
小程序的app.jsx文件,接收只能在这个文件里取到!

constructor(props) {
    super(props);
    try {
      // 全局方法 删除a小程序带来的信息
      global.updateMsgParams = function() {
          global.msgParams = undefined
        }
    } catch (e) {
    }
  }
componentDidShow() {
    //写在这里可以保证每次数据都更新,在componentWillMount不行,因为只能执行一次,会导致再次进入时不更新参数值
    //console.log('其他小程序带进来的值', this.$router.params.referrerInfo.extraData)
    global.msgParams = this.$router.params.referrerInfo.extraData
  } 

上面的global.msgParams是我在app.jsx定义的一个全局变量
想要在其他page页面使用的话,直接取这个全局变量

b的表单页

componentWillMount() {
	//取到信息
    console.log(global.msgParams)
}

goBackOther() {
	//this.state.backHomeFlag 是判断它从哪进来的
    if(this.state.backHomeFlag) {
    //如果从别的小程序跳进来,点击返回按钮回到首页
      Taro.switchTab({
        url:'/pages/Main/index'
      })
    } else {
    //如果从自己小程序进来,返回上一页
      Taro.navigateBack({
        delta: 1
      });
    }
    //不管从哪进来,离开页面时都需要将本页面的global msg 删除,避免缓存
      global.updateMsgParams() //app.jsx 定义的全局方法
 }

语言表达能力不是很好,这么记录我自己是能看懂的,希望也能帮到其他遇到过类似问题的童鞋~

相关案例查看更多