uni-app小程序通过webView给h5页面传参

一、问题描述

小程序部分页面使用H5(例如关于我们), 但需要传小程序版本号,通过url传参,但实际并未获取到;
多番百度后,发现原来是因为使用navigate跳转时,url是有长度限制的,uniapp文档里也有介绍;
所以需要使用 ·encodeURIComponentdecodeURIComponent进行编码和解密后才行;在这里插入图片描述

二、解决办法

// 1. navigate跳转时,对参数进行编码
goto(){
	let url = BASEURL + `/aboutUs.html?version=${this.version}`
	let newurl = encodeURIComponent(url)
	uni.navigateTo({
		url:`/pages/webview?url=${newurl}`
	})
}

//2.webview页面, 接收参数时进行解码即可
<web-view :src="url"></web-view>
onLoad(options){
	this.url = decodeURIComponent(options.url)
},
	

参考文章:https://segmentfault.com/a/1190000023040932

如果你想在uni-app小程序中将token传递给webviewH5页面,可以使用uni-app提供的uni.postMessage()方法。具体的实现步骤如下: 1. 在uni-app小程序中,使用uni.getStorageSync()方法获取token,并将token保存在变量中。 2. 在uni-app小程序中,使用uni.createSelectorQuery()方法获取webview组件的引用,并调用组件的postMessage()方法将token传递给H5页面。 3. 在H5页面中,使用window.addEventListener()方法监听message事件,获取传递过来的token。 下面是一个示例代码: 在uni-app小程序中: ```javascript export default { mounted() { // 获取token let token = uni.getStorageSync('token') // 获取webview组件引用 let webview = uni.createSelectorQuery().select('#webview') // 将token传递给H5页面 webview.postMessage({ type: 'setToken', token: token }) } } ``` 在H5页面中: ```javascript window.addEventListener('message', function(event) { if (event.data.type === 'setToken') { let token = event.data.token // 在这里可以使用token进行相关操作 } }) ``` 在这个示例代码中,我们先在uni-app小程序中获取token,并将token保存在变量中。然后使用uni.createSelectorQuery()方法获取webview组件的引用,并调用组件的postMessage()方法将token传递给H5页面。在H5页面中,我们使用window.addEventListener()方法监听message事件,获取传递过来的token。在这里,我们可以使用token进行相关操作。需要注意的是,传递的数据需要使用对象形式,并且在H5页面中需要判断数据的类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值