微信小程序web-view嵌套H5,小程序与H5通信

小程序向H5发送信息:

小程序端代码:

webView /index.wxml

html 复制代码
 <web-view 
    key="{{webViewKey}}"  
    src="{{shoppingUrl}}" 
    bindload="onWebViewLoad"
    binderror="onWebViewError"
  />
javascript 复制代码
     that.setData({
            shoppingUrl:`http://192.168.18.72:3000/mobile/pages/order/paying?orderId=${options.id}&code=${res.code}`,
            
          })

H5接收:

javascript 复制代码
  onLoad(options) {
 if(options.code){
            console.log("微信小程序携带code跳转过来的",options.code);
                 orderId= options.orderId;
                 codeWx= options.code;
          
        }

}

H5向小程序发送信息:

H5 /pages/order/paying

javascript 复制代码
需要先引入wxSDK
	import wx from 'weixin-js-sdk';

 

wx.miniProgram.navigateTo({
                                  url:"/pages/webView/index?params="+encodeURIComponent(params1) 
                                })

微信小程序接收:

javascript 复制代码
 onLoad(options:any) {
if(options.params){
      let params1=decodeURIComponent(options.params)
     let params=JSON.parse(params1)
      that.setData({
        params:params
      })
    }

}

以上基本传递信息结束!!

如果小程序接收到H5信息之后想要跳转H5的另外一个页面,那就需要改变web-view的src,当直接赋值发现H5并没有跳转成功,所以需要加 key="{{webViewKey}}" ,改变webViewKey之后,H5可以重新渲染
代码展示:

html 复制代码
 <web-view 
    key="{{webViewKey}}"  
    src="{{shoppingUrl}}" 
    bindload="onWebViewLoad"
    binderror="onWebViewError"
  />
javascript 复制代码
 this.setData({
        shoppingUrl:`http://192.168.18.72:3000/mobile/pages/order/pay?orderId=${payInfo.orderId}&wxpay=1`,
        
      })
      this.setData({ webViewKey: this.data.webViewKey + 1 });
相关推荐
小雨青年3 分钟前
Cursor 项目实战:AI播客策划助手(二)—— 多轮交互打磨播客文案的技术实现与实践
前端·人工智能·状态模式·交互
小光学长24 分钟前
基于Vue的儿童手工创意店管理系统as8celp7(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
meichaoWen25 分钟前
【Vue】Vue框架的基础知识强化
前端·javascript·vue.js
jingling55529 分钟前
Flutter | 基础环境配置和创建flutter项目
前端·flutter
mapbar_front32 分钟前
如何判断一个领导值不值得追随
前端
西西学代码34 分钟前
Flutter---DragTarget(颜色拖拽选择器)
前端·javascript·flutter
小光学长34 分钟前
基于Vue的地铁综合服务管理系统7949eg04(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
nihao56142 分钟前
Figma-Context-MCP 帮助前端快速生成页面
前端·ai编程·figma
阿蓝灬1 小时前
React中的stopPropagation和preventDefault
前端·javascript·react.js
天天向上10241 小时前
vue3 抽取el-dialog子组件
前端·javascript·vue.js