webview内嵌h5和微信小程序的相互跳转

11 篇文章 0 订阅

1.在微信小程序里面使用内嵌h5页面,需要主要要在微信公众平台:开发管理——开发设置——业务域名中配置你内嵌的页面用到的域名。
2.微信小程序跳转到h5页面使用标签:
主要如果页面跳转到这个webview标签页面,src后面的参数是带不过去的比如:‘…/webview/webview?src=https://api.com/list?id=1&token=sdjiwboaxne’
你会发现list后面的参数都带不过去,你需要进行编码一下:

let src = "https://api.com/list?id=1&token=sdjiwboaxne";
wx.navigateTo({
url:'../webview/webview?src='+ encodeURIComponent(src)
})

<template>
	<view>
		<web-view :src="src" :webview-styles="webviewStyles"></web-view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				src: "",
				webviewStyles: {
					progress: {
						color: '#019aff'
					}
				}
			}
		},
		onLoad(param) {
			this.src = decodeURIComponent(param.src);
		}

3.在h5页面完成操作跳转到小程序页面,需要用到官方的:

所以我们要注意现在vue项目里面引入微信的sdk,我是使用npm下载引入的。

npm install weixin-js-sdk --save

在使用的页面引入:

import wx from 'weixin-js-sdk'


//跳转的方法:
toWX(){
//这里还是要注意一下你跳转的页面,如果跳转的页面是首页之类带有tabbar的,你需要使用:
  wx.miniProgram.switchTab({url:'/path/to/page'})
  //其他页面你可以使用
  wx.miniProgram.navigateTo({url: '/path/to/page'})
}



注意点:
如果web-view是tab页面,要实现点击切换tab刷新web-view页面可以使用:

//当前是 tab 页时,点击 tab 时触发
onTabItemTap: function() {
 //在这里写给web-view要跳转页面赋值方法。
},

如果要刷新web-view页面,可以在webviewUrl后面拼接时间戳或者版本号用来解决缓存问题,web-view的缓存是很严重的,因为缓存问题会有各种各样的问题。
版本号可以调用接口来实现,时间戳可以看下面:

let randStr = new Date().getTime() + '' + Math.round(Math.random() * 10000);
let webviewUrl = path +'?randStr=' + randStr;
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 我可以给你一些建议,你可以使用uniapp的getApp()函数来访问微信小程序的App实例,然后调用App实例里面的getWxWebViewInfo()函数来获取小程序内webview的相关信息。 ### 回答2: 要在uniapp中获取微信小程序Webview,可以使用uni-app的原生API和微信小程序的API进行操作。具体步骤如下: 1. 首先,在uniapp的项目中引入`uni.getEnv()`方法,用于判断当前运行环境是否为微信小程序。 ``` import uni from '@/uni' ``` 2. 然后,在需要获取Webview的页面或组件中,使用`uni.getEnv()`方法进行判断。 ``` if (uni.getEnv() === 'WEAPP') { // 运行在微信小程序环境中 // 获取Webview的方法 } ``` 3. 在微信小程序环境中,我们需要使用微信小程序的API来获取Webview。可以使用`wx.createSelectorQuery()`方法来获取Webview的节点。 ``` if (uni.getEnv() === 'WEAPP') { wx.createSelectorQuery().select('#webview').context(function (res) { console.log(res) }).exec() } ``` 4. 在上述代码中,`#webview`是Webview节点的选择器,需要根据实际情况进行修改。`res`参数中的`context`属性即为获取到的Webview节点。 5. 接下来,可以通过`res.context`来操作Webview,例如设置URL、发送消息等。 ``` if (uni.getEnv() === 'WEAPP') { wx.createSelectorQuery().select('#webview').context(function (res) { res.context.postMessage({ message: 'Hello Webview' }) }).exec() } ``` 以上就是在uniapp中获取微信小程序Webview的简单步骤。需要注意的是,这种方法只适用于运行在微信小程序环境中的uniapp项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值