H5页面唤起小程序 & 小程序唤醒H5并携带参数

63 篇文章 4 订阅
4 篇文章 0 订阅
本文详细介绍了H5如何唤起小程序以及小程序如何唤起H5的过程。在H5中,通过设置小程序配置路径和携带参数,调用后端API获取小程序链接来实现唤起。而在小程序端,利用wx.navigateTo跳转到特定页面,并确保URL不包含问号以避免参数丢失。这种交互方式在处理支付授权等场景时尤为关键。
摘要由CSDN通过智能技术生成

H5唤起小程序

async goDrug(item) {
  // 如果需要携带参数进入小程序
  if(item.id && item.roomCode && item.docName && this.apiToken){
  	// 如果携带的参数有中文的话需要使用encodeURI转换为字符串,否则报错
    let decName = window.encodeURI(item.docName)
    const data = {
      //小程序配置路径
      path: '/pages/im/im',
      // 需要携带的参数
      query: `id=${item.id}&token=${this.apiToken}&groupID=${item.roomCode}&docName=${decName}`,
          env_version:'trial' // 体验版,除正式版外均需要在微信外浏览器打开才生效
        }
        // 交给后端去做
        // 请求后端API,将参数传入,获取后端返回的小程序链接
        const res = await getUrlScheme(data)
        console.log(res,'获取微信小程序链接');
        if(res.code == '200' || res.code == '0'){
          console.log(res.data);
          // 直接在此唤醒小程序即可
          location.href = res.data
        }else{
          Toast('获取失败')
        }
      }else{
        Toast('未获取到ID或房间号')
      }
    }

小程序唤起H5

前言:因为页面要调用支付,支付授权之后重定向页面会携带query参数,为了方便判断是否授权,所以尽量不要使用?传参

step1

这里解释下为什么不直接在页面使用web-view 组件

  • web-view默认铺满全屏,会覆盖其他内容
  • 所以需要新建跳转页面,如下所示
// wxml页面,web-view小程序原生组件,url就是要跳转到的H5页面
<web-view src="{{url}}"></web-view>
onLoad(options) {
  if(!options.url) return false
  // 获取上个页面传过来的url并赋值给data
  this.setData({
    url:options.url
  })
 },

step2

// 在需要的地方加上这个跳转方法即可
// 注意的坑:url不要携带?,如果你携带了小程序不会解析?之后的值,大坑勿入
let url = `https://test.webchicken.com/#/orderPay/${id}/${consultOrderId}/${recipeSn}`
wx.navigateTo({
  // 这里就是step1中新建的page路径
  url: '/pages/out/out?url=' + decodeURIComponent(url),
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端大斗师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值