diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..98a9cce
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,16 @@
+{
+ // 使用 IntelliSense 了解相关属性。
+ // 悬停以查看现有属性的描述。
+ // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+
+ {
+ "type": "msedge",
+ "request": "launch",
+ "name": "Launch Edge against localhost",
+ "url": "http://localhost:8080",
+ "webRoot": "${workspaceFolder}"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/WebView2Demo/MainWindow.xaml b/WebView2Demo/MainWindow.xaml
index c4e3e3f..1dd330f 100644
--- a/WebView2Demo/MainWindow.xaml
+++ b/WebView2Demo/MainWindow.xaml
@@ -1,4 +1,4 @@
-
-
-
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WebView2Demo/MainWindow.xaml.cs b/WebView2Demo/MainWindow.xaml.cs
index bba31f7..f9ac14d 100644
--- a/WebView2Demo/MainWindow.xaml.cs
+++ b/WebView2Demo/MainWindow.xaml.cs
@@ -1,4 +1,4 @@
-using System.Text;
+using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
@@ -8,6 +8,7 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
+using Microsoft.Web.WebView2.Core;
namespace WebView2Demo
{
@@ -19,6 +20,53 @@ namespace WebView2Demo
public MainWindow()
{
InitializeComponent();
+ InitializeWebView();
+ }
+
+ private async void InitializeWebView()
+ {
+ try
+ {
+ // 1. 显式初始化
+ await webView.EnsureCoreWebView2Async(null);
+
+ // 2. 注入调试开启指令 (可选)
+ webView.CoreWebView2.Settings.AreDevToolsEnabled = true;
+
+ // 3. 监听消息
+ webView.WebMessageReceived += WebView_WebMessageReceived;
+
+ // 4. 初始化完成后再导航,确保 window.chrome.webview 注入成功
+ webView.Source = new Uri("http://localhost:5173");
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show($"WebView2 初始化失败: {ex.Message}");
+ }
+ }
+
+ private void WebView_WebMessageReceived(object? sender, CoreWebView2WebMessageReceivedEventArgs e)
+ {
+ // 获取来自前端的消息
+ string message = e.TryGetWebMessageAsString();
+ MessageBox.Show($"来自 Vue 的消息: {message}", "WPF 消息中心");
+ }
+
+ private void SendMessage_Click(object sender, RoutedEventArgs e)
+ {
+ if (webView.CoreWebView2 != null)
+ {
+ string text = msgInput.Text;
+ if (!string.IsNullOrWhiteSpace(text))
+ {
+ // 向前端发送消息
+ webView.CoreWebView2.PostWebMessageAsString(text);
+ }
+ }
+ else
+ {
+ MessageBox.Show("WebView2 尚未就绪,请稍后...");
+ }
}
}
}
\ No newline at end of file
diff --git a/web-app/.gitignore b/web-app/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/web-app/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/web-app/.vscode/extensions.json b/web-app/.vscode/extensions.json
new file mode 100644
index 0000000..a7cea0b
--- /dev/null
+++ b/web-app/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["Vue.volar"]
+}
diff --git a/web-app/README.md b/web-app/README.md
new file mode 100644
index 0000000..1511959
--- /dev/null
+++ b/web-app/README.md
@@ -0,0 +1,5 @@
+# Vue 3 + Vite
+
+This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `
+