using Microsoft.Web.WebView2.Core;
|
using PdmSwPlugin.Common;
|
using PdmSwPlugin.Common.Interface;
|
using PdmSwPlugin.PDM;
|
using PdmSwPlugin.PDM.Entity;
|
using PdmSwPlugin.Test.UIHandler;
|
using PdmSwPlugin.Util;
|
using PdmSwPlugin.Util.Entity;
|
using SolidWorks.Interop.sldworks;
|
using System;
|
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
using System.Runtime.InteropServices;
|
using System.Windows.Controls;
|
|
namespace PdmSwPlugin.Test
|
{
|
/// <summary>
|
/// UserControl1.xaml 的交互逻辑
|
/// </summary>
|
[PdmSwPlugin(Title = "测试Web")]
|
|
public partial class TestWeb : UserControl, ISwAppSetter
|
{
|
|
public TestWeb()
|
{
|
InitializeComponent();
|
InitializeAsync();
|
DataContext = new TestWebModel(null, null);
|
}
|
|
public SldWorks SwApp { get; set; }
|
|
private PdmControl pdm { get; set; }
|
|
public void SetSwApp(SldWorks SwApp)
|
{
|
this.SwApp = SwApp;
|
pdm = new PdmControl(SwApp);
|
TestWebModel model = DataContext as TestWebModel;
|
model.SwApp = SwApp;
|
model.pdm = pdm;
|
}
|
|
async void InitializeAsync()
|
{
|
//显示初始化CoreWebView2
|
await webView.EnsureCoreWebView2Async();
|
//打开开发工具
|
webView.CoreWebView2.OpenDevToolsWindow();
|
webView.CoreWebView2.AddHostObjectToScript("testPdm", DataContext);
|
webView.CoreWebView2.WebMessageReceived += UpdateAddressBar;
|
|
//虚拟映射
|
// "C:\\Workspace\\learn\\wpf_ui\\dist"
|
// "C:\\Workspace\\PDM\\Web_UI\\pdm"
|
webView.CoreWebView2.SetVirtualHostNameToFolderMapping("ui", "C:\\Workspace\\learn\\wpf_ui\\dist", CoreWebView2HostResourceAccessKind.Allow);
|
//导航
|
// webView.CoreWebView2.Navigate("http://ui/index.html");
|
webView.CoreWebView2.Navigate("http://localhost:8080");
|
}
|
|
|
void UpdateAddressBar(object sender, CoreWebView2WebMessageReceivedEventArgs args)
|
{
|
|
string uri = args.TryGetWebMessageAsString();
|
RequestData<TestData> msg = JsonUtil.Deserialize<RequestData<TestData>>(uri);
|
|
|
ObservableCollection<PdmBom> boms = pdm.RefreshBomList(SwApp.IActiveDoc2);
|
|
|
webView.CoreWebView2.PostWebMessageAsString(JsonUtil.Serialize(new ResultData
|
{
|
key = msg.key,
|
id = msg.id,
|
data = boms
|
}));
|
}
|
}
|
}
|