微信小程序嵌入 H5 页面(webview)基本用法和父子传参数说明

背景:

最近实现一个功能需要在小程序嵌入其它系统内部的一个页面(用vue写的H5页面),但小程序是无法使用iframe的,所以最终选择小程序官方的webview实现,本文对基本用法和父子传参进行说明。 所以下面将说明:

  1. 小程序官网配置业务域名
  2. 标签的用法。
  3. 父子传参数。
  4. H5 跳转回小程序。

一、 小程序官网配置业务域名

小程序官方要求配置,如果不配置在趁机上会无法打开,但在微信开发者工具正常
步骤: 在微信小程序后台,开发-开发管理-开发设置-业务域名 这里添加需要嵌入到小程序里面 H5 页面的合法域名(最多200个);

二、标签的用法

web-view 承载网页的容器。会自动铺满整个小程序页面,不能像iframe那样能设置某个区域

ini 复制代码
直接使用标签即可
 <web-view src="xxxxxxxxxx"></web-view>

三、父子传参数

以下我把本地小程序形容为父,被嵌入系统形容为子
父传子:

ini 复制代码
 <web-view src="{{webUrl}}"/>
javascript 复制代码
created() { 
    // H5获取token const wxobj = {} 
    window.location.href.replace(/([^?&=]+)=([^&]+)/g, (_, k, v) => (wxobj[k] = v)) 
    if ( wxobj.token) { 
        store.commit( 'user/setToken', wxobj.token) 
    } 
}

父用url拼接过去,子通过window.location.href.replace获取到内容

子传父:

在子系统(被嵌入) 需要安装官方的weixin-js-sdk包:

(1)安装:

csharp 复制代码
 pnpm add weixin-js-sdk

(2)使用的页面引入:

javascript 复制代码
import wx from "weixin-js-sdk";

(3)使用传参给父:

css 复制代码
wx.miniProgram.postMessage({ 
    data: { token } 
});

父系统(小程序)

ini 复制代码
<web-view src="{{webUrl}}" bindmessage="getMessage"/>
javascript 复制代码
//接收网页数据
 getMessage: function (res) {
    let token = res.detail.data;
    this.setData({ token });
  },

四、 H5 跳转回小程序。

需要用到上面引入的weixin-js-sdk包

javascript 复制代码
const name = '天天'
wx.miniProgram.navigateTo({
  url: `/pages/my/my?name=${name}` , // 小程序地址
  success () {
    console.log('question success')
  },
  fail (error) {
    console.log(error)
  }
})

父系统能拿到?后面的传参数

javascript 复制代码
onLoad(option) { 
    this.name = JSON.parse(option.name); 
},

更多weixin-js-sdk包的API可以去官网查:点击跳去

相关推荐
AI砖家7 分钟前
解剖 Claude Code:如何搭建一个企业级的私有化 AI 编程助手
前端·人工智能·ai编程
用户57573033462438 分钟前
拒绝“首屏爆炸”:用 React 哨兵模式与懒加载打造丝滑列表
前端
大腕先生1 小时前
通用分页超详细介绍(附带源代码解析&页面展示效果)
xml·java·linux·服务器·开发语言·前端·idea
睿智的海鸥1 小时前
Markdown 语法大全详解
开发语言·前端·javascript·css·html
Highcharts.js1 小时前
用Highcharts如何动态向一个序列添加点
前端·javascript·react.js·highcharts
HookJames1 小时前
设计Section 09 · Cost & Lead Time Factors 的完整 Block Editor 操作步骤
前端
玖玖passion2 小时前
React 常用 Hooks 函数及使用方法完全指南(useState / useEffect / useRef / useContext / useCallback / useMemo / useReducer)
前端·javascript
Awu12272 小时前
⚡精通Claude第6课-Hooks钩子系统:从前端视角玩转AI自动化工作流
前端·aigc·claude
椰猫子2 小时前
Spring Framework(Bean)
java·前端·spring
道清茗2 小时前
【RH294知识点汇总】第 7 章 《 使用角色和 Ansible 内容集合简化 Playbook 》
java·前端·ansible