经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 编程经验 » 查看文章
使用 WPF + Chrome 内核实现高稳定性的在线客服系统复合应用程序
来源:cnblogs  作者:升讯威在线客服系统  时间:2024/2/7 9:54:32  对本文有异议

对于在线客服与营销系统,客服端指的是后台提供服务的客服或营销人员,他们使用客服程序在后台观察网站的被访情况,开展营销活动或提供客户服务。在本篇文章中,我将详细介绍如何通过 WPF + Chrome 内核的方式实现复合客服端应用程序。

先看实现效果

客服程序界面中的 聊天记录部分、文字输入框部分 使用的是基于 Chrome 内核的 WebView2 进行呈现的。

客服端

访客端

视频实拍:演示升讯威在线客服系统在网络中断,直接禁用网卡,拔掉网线的情况下,也不丢消息,不出异常。

https://blog.shengxunwei.com/Home/Post/fe432a51-337c-4558-b9e8-347b58cbcd53


要实现这样的效果只需三个步骤

  • 嵌入组件
  • 响应事件
  • 调用 JavaScript 函数

1. 嵌入组件

首先使用 NuGet 将 WebView2 SDK 添加到项目中,然后将 WebView 添加窗口界面。

  1. <Window x:Class="WPF_Getting_Started.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. xmlns:local="clr-namespace:{YOUR PROJECT NAME}"
  7. xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
  8. mc:Ignorable="d"
  9. Title="MainWindow"
  10. Height="450"
  11. Width="800"
  12. >
  13. <Grid>
  14. <DockPanel>
  15. <wv2:WebView2 Name="webView"
  16. Source="https://www.microsoft.com"
  17. />
  18. </DockPanel>
  19. </Grid>
  20. </Window>

2. 响应事件

在网页导航期间,WebView2 控件将引发事件。 承载 WebView2 控件的应用侦听以下事件。

  • NavigationStarting
  • SourceChanged
  • ContentLoading
  • HistoryChanged
  • NavigationCompleted

例:修改构造函数以匹配以下代码段并添加 EnsureHttps 函数。

  1. public MainWindow()
  2. {
  3. InitializeComponent();
  4. webView.NavigationStarting += EnsureHttps;
  5. }
  6. void EnsureHttps(object sender, CoreWebView2NavigationStartingEventArgs args)
  7. {
  8. String uri = args.Uri;
  9. if (!uri.StartsWith("https://"))
  10. {
  11. args.Cancel = true;
  12. }
  13. }

3. 调用 JavaScript 函数

可以在运行时使用主机应用将 JavaScript 代码注入控件。 可以运行任意 JavaScript 或添加初始化脚本。 在删除 JavaScript 之前,注入的 JavaScript 适用于所有新的顶级文档和任何子框架。

例如,添加在用户导航到非 HTTPS 网站时发送警报的脚本。 修改 EnsureHttps 函数以将脚本注入到使用 ExecuteScriptAsync 方法的 Web 内容中。

  1. void EnsureHttps(object sender, CoreWebView2NavigationStartingEventArgs args)
  2. {
  3. String uri = args.Uri;
  4. if (!uri.StartsWith("https://"))
  5. {
  6. webView.CoreWebView2.ExecuteScriptAsync($"alert('{uri} is not safe, try an https link')");
  7. args.Cancel = true;
  8. }
  9. }

完成

只需要以上简单三个步骤,嵌入组件、响应事件、调用 JavaScript 函数。就可以完成 WPF + Chrome 内核 的复合式应用程序!

原文链接:https://www.cnblogs.com/sheng_chao/p/18009246

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号