Vue 打包项目在 WebView2 中未收到 C# 发送的数据,如何排查和解决问题?

我有1个windows C#项目,项目里要使用1个vue项目,vue项目现在已经打好包,放入在windows项目内,window项目使用的是 webView2引用vue打好包的主页index.html

我的需求:在打开vue页面时,index.html需要使用设备列表数据,数据是webView2传给前端,

这是后端代码

      // 下面能正常接收到消息
                // webView21.Source = new Uri("file:///D:/Work/Git/cmvrf/CMVRF/Project3/development/test.html");
                // 下面接收不到消息
                 webView21.Source = new Uri("file:///D:/Work/Git/cmvrf/CMVRF/Project3/development/index.html#/haierDragDropSystem?lang=en&isdark=1");
                
                webView21.CoreWebView2.WebMessageReceived += GetDrawInfo;

这是前端代码

    //  这里是前端 接收C#消息:
window.chrome.webview.addEventListener("message", function (event) {
      // 设备列表
      console.log(event.data);
    });

现在有1个问题,如果只用单独的test.html接收event.data是能正常收到数据,但是如果用vue打包好的项目index.html接收不到event.data,是不是vue项目的index.html打开有延时,C#发送的消息提前发送了,在index.html打开时addEventListener("message")监听不到了,这种情况怎么办?

阅读 705
1 个回答
// 增加了这句就可以了    
window.chrome.webview.postMessage("successload");

    //  接收C#消息:
    window.chrome.webview.addEventListener("message", function (event) {//...})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏