微信小程序和H5之间互相跳转、互相传值

news/2024/7/20 0:59:08 标签: 微信小程序, 小程序, vue.js, H5

最近又开始写小程序了,刚好遇到小程序>微信小程序和内嵌 H5 之间来回跳转,来回交互;这里记录一下小程序>微信小程序H5 之间交互的实现;(我的小程序是通过 un-app 框架来写的,内部代码基本都是 vue)

文章目录

H5_3">一、小程序>微信小程序跳转 H5

1、web-view

小程序>微信小程序官方提供了 web-view 组件来实现小程序>微信小程序跳转到 H5 页面,实现的方式也很简单,具体实现方式如下:
1、新建一个页面用来单独存放 web-view 组件,并且所有的内嵌 H5 都可以通过这个页面来实现跳转;

//web-view
<web-view :src="url"></web-view>
export default{
	data(){
		return{
			url:''
		}
	},
	onLoad(option){
		this.url = option.url
	}
}

其他小程序页面跳转只需要将 H5 的地址拼接在路径上;

//其他小程序页面
let url = 'xxxx';
uni.navigateTo({
	url: `/pages/webview/webview?url=${url}`
})

H5_29">二、H5小程序>微信小程序

H5小程序>微信小程序跳转需要借助微信 JS-SDK(官方文档),官方提供的是引入 js 文件的方式来使用微信 JS-SDK;当然在 vue 的项目里我们还可以以依赖的方式来安装:weixin-js-sdk;

H5__31">1、H5 直接跳到小程序>微信小程序

可以借助微信 sdk 里面的标签( wx-open-launch-weapp)直接跳转;不过这种方式需要申请配置:

  1. 已认证的服务号(公众号),服务号绑定“JS接口安全域名”下的网页可使用此标签跳转任意合法合规的小程序
  2. 已认证的非个人主体的小程序,使用小程序云开发的静态网站托管绑定的域名下的网页,可以使用此标签跳转任意合法合规的小程序
<wx-open-launch-weapp
  id="launch-btn"
  username="gh_xxxxxxxx"
  path="pages/home/index?user=123&action=abc"
>
  <script type="text/wxtag-template">
    <style>.btn { padding: 12px }</style>
    <button class="btn">打开小程序</button>
  </script>
</wx-open-launch-weapp>

这种方式可以跳转到任何小程序跳转的同时,H5页面可以把需要传递的参数通过 path 路径拼接的方式将参数传递过去;
可参考:开发标签说明文档

H5_50">2、内嵌H5跳转到小程序>微信小程序

这种不需要配置,直接就可以通过微信 sdk 提供的方法来实现跳转;注意:只能跳转回当前小程序

wx.miniProgram.navigateTo({url:''})
wx.miniProgram.navigateBack({url:''})
wx.miniProgram.switchTab({url:''})
wx.miniProgram.reLaunch({url:''})
wx.miniProgram.redirectTo({url:''})

完整的操作应该是:

//先判断当前环境是小程序环境
wx.miniProgram.getEnv(function(res){
	if(res.miniprogram){
		//跳转到小程序页面
		wx.miniProgram.navigateTo({
			url:"/pages/xxx"
		})
	}
})

H5_71">三、小程序>微信小程序传值给内嵌H5

1、路径传参

小程序直接通过修改 web-view 的 src 属性就行了,将需要传递的参数拼接在路径上,H5 页面之间通过 query 来拿参数;

//其他小程序页面
let url = 'xxxx?name=xxx&number=123';
uni.navigateTo({
	url: `/pages/webview/webview?url=${url}`
})

H5_81">四、内嵌H5传值给小程序>微信小程序

以下两种方式都需要在 H5 的 index.html 页面引入下面 js:

<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
1、用 postMessage

在 web-view 组件上有一个属性 bindmessage ,网页向小程序 postMessage 时会触发并接收消息;

//web-view
<web-view :src="url" @message="getMessage"></web-view>
export default{
	data(){
		return{
			url:''
		}
	},
	onLoad(option){
		this.url = option.url
	}
	methods:{
		getMessage(e){
			//接收参数,也可以跳转到小程序其他页面将参数传递过去
			console.log(e.detail)
		}
	}
}
//H5页面
wx.miniProgram.postMessage({ data: {name: 'xxx'} })
2、路径传参

调用微信 wx.miniProgram API 跳转到小程序页面时,通过路径拼接把参数传递过去;

wx.miniProgram.navigateTo({
  url:"/pages/xxx/xxx/xxx?name=xxx"
});

http://www.niftyadmin.cn/n/10724.html

相关文章

【python实战】朋友因股票亏了,很惨常愤恨不平,当天我就分析出原因:怎么做到的?(听说关注我的人会暴富)

导语 有温度 有深度 有广度 就等你来关注哦~ 所有文章完整的素材源码都在&#x1f447;&#x1f447; 粉丝白嫖源码福利&#xff0c;请移步至CSDN社区或文末公众hao即可免费。 对于大部分股票投资者来说&#xff0c;一年能拿住翻倍的股票就实属不易。一年10倍&#xff0c;甚至…

大数据开发工程师要求高么?有前景么

Python近段时间一直涨势迅猛&#xff0c;在各大编程排行榜中崭露头角&#xff0c;得益于它多功能性和简单易上手的特性&#xff0c;让它可以在很多不同的工作中发挥重大作用。 正因如此&#xff0c;目前几乎所有大中型互联网企业都在使用 Python 完成各种各样的工作&#xff0…

oracle的从入门到精通第一篇(oracle的基本概念与crud)

文章目录概念什么是oracle&#xff1f;什么是sqlplus&#xff1f;oracle几大语言&#xff08;SQL |DDL|DML|DQL|DCL|TCL&#xff09;oracle用户相关操作&#xff08;加锁|解锁|授权|取消授权&#xff09;oracle当中的数据类型&#xff1a;字符型&#xff1a;数值型&#xff1a;…

深度学习基础--神经网络(4)参数更新策略,梯度法

导数 导数&#xff1a;表示某个瞬间的变化量&#xff0c;公式定义&#xff1a; df(x)dxlimh→0f(xh)−f(x)h(4.4)\frac{df(x)}{dx} lim_{h \to 0}\frac{f(x h)-f(x)}{h} \tag{4.4} dxdf(x)​limh→0​hf(xh)−f(x)​(4.4) 求导的代码实现&#xff1a; import numpy as np i…

【MySQL运行原理篇】底层运行结构

MySQL整体架构图 简略版图 1.1连接管理 一句话&#xff1a;负责客户端连接服务器的部分 网络连接层, 对客户端的连接处理、安全认证、授权等&#xff0c;每个客户端连接都会在服务端拥有一个线程&#xff0c;每个连接发起的查询都会在对应的单独线程中执行。服务器上维护一…

Design Compiler工具学习笔记(4)

目录 引言 知识储备 实际操作 设计源码 Vivado2018.3仿真 VCS2016仿真 Tcl脚本 约束脚本 MY_TOP.tcl 运行脚本 RUN.tcl 引言 本篇继续学习 DC的基本使用。本篇主要学习 DC 需要的环境约束。 前文链接&#xff1a; Design Compiler工具学习笔记&#xff08;1&#x…

智能家居——libcurl库简介

文章目录一、Libcurl库简介二、Libcurl等三方库的通用编译方法&#xff08;1&#xff09;三方库使用前通读方法&#xff08;2&#xff09;库的配置、编译、安装三、测试代码&#xff08;1&#xff09;代码&#xff1a;&#xff08;2&#xff09;编译和运行&#xff08;3&#x…

练习3 基本数据类型 (第3周)

目录 实例3&#xff1a;天天向上的力量 实例4&#xff1a;文本进度条 三次方格式化 星号三角形 恺撒密码 实例3&#xff1a;天天向上的力量 这是"实例"题&#xff0c;与课上讲解实例相同&#xff0c;请作答检验学习效果。‬ 工作日模式要努力到什么水平&#…