架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2144|回复: 4

[资料] 【WebView2】(三)Web 与 WinForm 应用程序双向通信

[复制链接]
发表于 2022-9-27 22:12:31 | 显示全部楼层 |阅读模式
需求:WebView2 将 Web 资源渲染和展示出来提供用户操作,如何让 Web 界面与 WinForm 应用程序互相通信呢?例如:Web 通过应用程序读取硬件的信息,应用程序主动刷新 Web 页面内容等。

回顾:

【WebView2】(一)初识 Microsoft Edge WebView2 技术
https://www.itsvse.com/thread-10361-1-1.html

【WebView2】(二)WinForm 引入 WebView2 显示 Web 内容
https://www.itsvse.com/thread-10362-1-1.html
首先,先看 web 和 winform 应用程序通信的效果图,web 向应用程序发送消息,调用打开 Windows 系统的计算器功能,同时,应用程序给 web 端发送消息也能接收成功,如下图:

msg.gif

主机和 Web 内容之间的通信

主机和 Web 内容可用于 postMessage 相互通信,如下所示:

  • WebView2 控件中的 Web 内容可用于 window.chrome.webview.postMessage 向主机发布消息。 主机使用在主机上注册 WebMessageReceived 的任何消息来处理消息。
  • 主机使用或CoreWebView2.PostWebMessageAsJSON将消息发布到 WebView2 控件CoreWebView2.PostWebMessageAsString中的 Web 内容。 这些消息是由添加到的处理程序捕获的 window.chrome.webview.addEventListener。


新建 Angular SPA 项目

本文使用 Angular 8.2.14 新建一个 Web 项目来演示Web 与 WinForm 应用程序互相通信,项目新建完成后,通过如下命令新建一个 service 服务:

代码如下:

同时,修改 app.component.html 和 app.component.ts 文件,实现发送消息和接收消息功能。

app.component.html 代码如下:

app.component.ts 代码如下:

运行项目,如下图:

QQ截图20220927220200.jpg

WinForm 应用程序

主机应用程序需要修改代码如下:

修改 webview2 控件的 source 属性为:http://localhost:4200/,启动应用程序,如下图:

QQ截图20220927220945.jpg

最后,尝试 Web 与 WinForm 应用程序互相发送消息,可以看到双方都可以成功接收到消息,如下图:

QQ截图20220927221105.jpg

(完)





上一篇:【性能优化】前端之 preconnect、dns-prefetch、preload 特性
下一篇:【WebView2】(四)Web 与 WinForm 相互调用函数方法
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-9-28 08:55:45 | 显示全部楼层
必须依赖edg这个头疼
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2022-9-28 19:26:50 | 显示全部楼层
Zmoli775 发表于 2022-9-28 08:55
必须依赖edg这个头疼

不需要,但是需要安装 webview2 runtime
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-10-8 15:06:24 | 显示全部楼层
学习学习
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-3-31 13:32:46 | 显示全部楼层
win7好像不能用吧,我看微软的文档说不支持?
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-20 21:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表