uniapp的小程序中使用web-view进行相互传参,并监听web-view的返回键

uniapp的小程序中使用web-view进行相互传参,并监听web-view的返回键

一、unaipp给webview传参

复制代码
//uniapp页面中
<web-view :src="src"   @message="getMessage" @onPostMessage="getPostMessage">
			</web-view>

data() {
	return {
	nowObj:{
	     name:'' 我是uniapp的值",
	},
	src:"    "
    }
},
onLoad() {
			this.src = 'http://192.168.28.57:3333/#/signin?itemObj=' + JSON.stringify(this.nowObj)
		},

H5页面中

1.引入微信js https://res.wx.qq.com/open/js/jweixin-1.4.0.js
2.引入 uniapp 的jdk文件(去官网下到本地)(引入一定要放到body下面,不然UniAppJSBridgeReady不生效)
3.写好UniAppJSBridgeReady

vue页面中接收值

复制代码
//直接在mounted中获取
JSON.parse(this.$route.query.itemObj)   //获取到uniapp传过来的值

二、webview给unaipp传参 (index.html跟上面一样要写)

在vue的h5页面中

复制代码
methods:{
    // 监听返回事件
    backChange(){
      uni.postMessage({
        data: {
          action: 'message'
        }
      })
    },
  }

在uniapp页面中通过@message拿值

复制代码
<web-view :src="src" :update-title="false" @message="getMessage" @onPostMessage="getPostMessage">
			</web-view>
methods: {
		getMessage(e) {
				console.log('拿到webview传来的值', e);
		},
			
}

三、监听webview的返回键,控制是否返回小程序还是返回上一页

原因:官方说小程序使用web-view是隐藏不了导航栏的,所以只能做个监听浏览器返回按钮的操作

在需要返回小程序的页面中写入一下代码(不写的话就是简单的浏览器返回上一页)

复制代码
destroyed(){
    //销毁监听
    window.removeEventListener('popstate',this.backChange,false)
  },
  mounted() {
    if(window.history && window.history.pushState){
      history.pushState(null, null, document.URL);
      window.addEventListener('popstate',this.backChange,false)
    }
  },
  methods:{
    // 监听返回事件并传参
    backChange(){
      uni.postMessage({
        data: {
          action: 'message'
        }
      })
      //navigateBack必填,否则关闭不了
      uni.navigateBack()

    },
  }
相关推荐
默_笙1 分钟前
🚥 给 RAG 装一台心电监护仪:LangSmith 全链路观测(上)
前端·javascript
前端snow1 小时前
ai agent --- mem0 外挂记忆系统
前端
特立独行的猫a2 小时前
用仓颉写一个 Tauri:IPC 的每次往返实现原理(web层到仓颉层的触发过程)
前端·ui·harmonyos·tauri·鸿蒙·仓颉
Dovis(誓平步青云)2 小时前
多个链接不等于多份证据,新闻核验看板怎样合并来源
java·服务器·前端·javascript·人工智能·pdf·电脑
骑着蜗牛撵大象3272 小时前
Qt 事件机制详解:从 QEvent 派生类到事件过滤器的全景指南
前端·python
qq_2518364573 小时前
理发管理系统 —— 会员模块
开发语言·前端·python·flask
Frag0ut3 小时前
2027 年浏览器展望:Chrome 与 Edge 的 AI 智能体进化方向
前端·人工智能·chrome·edge·浏览器·新功能
计算机魔术师3 小时前
从AI绘图鼻祖到音乐版权破局者,Stability AI如何被三大唱片巨头「收编」
前端
奕鼎竜瑆4 小时前
Chrome 插件开发实战指南:从入门到发布
前端·chrome
广州华水科技4 小时前
水库北斗GNSS变形监测系统及单北斗形变监测一体机应用解析
前端