普通视图

发现新文章,点击刷新页面。
昨天以前首页

H5端向App端通信(Uniapp必会)

2025年2月20日 21:27

大家好,我是大澈!一个喜欢结交朋友、喜欢编程技术和科技前沿的老程序员👨🏻‍💻,关注我,科技未来或许我能帮到你!

今天这篇文章算是分享一段uniapp的坑吧,H5端向App端通信的一种解决实现。

我感觉很有必要和没有遇到过的朋友们分享一下,下次用到的时候可以直接拿下,避免踩坑。

一、重点描述

先说说前置条件,我的App端和H5端都是用uniapp写的,H5端通过webview在App中加载,底层算是webview套webview了。

注意,如果H5端不是用uniapp写的,则考虑使用deeplink与App端进行通信。

再说说需求场景,App端支付成功后,通过第三方链接跳转到H5端支付结果页,然后在H5端结果页点击完成按钮,回到App端订单列表页,完成流程。

此时,如果H5端不与App端通信,就会陷入webview循化嵌套问题。

二、细节剖析

实现原理如图所示:

图片

1、App端接收消息

通过webview组件加载H5页面,在webview组件的message事件中,接收到H5端发送的消息,并做App端的逻辑处理,完成通信接收。

图片

2、H5端发送消息

在H5端页面中,先引入依赖文件:https://gitcode.net/dcloud/uni-app/-/raw/dev/dist/uni.webview.1.5.6.js,再通过postMessage方法发送消息到App端,完成通信发送。

注意,这里如果直接调用uni.postMessage方法时,可能会报错。所以先引入依赖文件再调用会比较可靠,避免踩坑。

图片

好了,今天要分享的内容就是这么多,最后感谢朋友们给个点赞、分享、推荐,拜拜~

❌
❌