我目前正在设计一个Angular SPA Web客户端,支持.NET5 REST。它都在同一个Visual Studio项目中,并且构建/运行良好。
我现在正在研究将其作为Windows桌面应用程序分发的可能性。我能够让Electron.NET工作,但它似乎是一个迂回的解决方案(Node?!)。我也不特别喜欢在分布式应用程序中资源是可见/可更改的。
这让我开始研究在WPF中使用WebView 2(微软似乎正在对MSTeams进行类似的过渡。)我发现了一些示例,但它们只用途:
1.仅远程内容(“www.bing.com”)
- local content, but only img / html / etc
- postmessage等来使用自定义对象进行通信。
这些都不是我想要的。嗯,这不完全正确。我需要#2来加载Angular SPA,但是当WebView 2托管的Angular调用HttpClient时,我希望在主机应用程序中拦截该请求,并将其路由到我的REST控制器。这将允许我保持几乎所有代码的完整性,并可能提供一个更小、更模糊的exe。
这可能吗?显而易见?我的愿望有根本性的缺陷吗?(这不是第一次)
1条答案
按热度按时间olmpazwi1#
Chromium.AspNetCore.Bridge提供了一个解决方案,它使用owin在内存中托管服务器端代码,并提供一个RequestInterceptor来将所有请求干净地中继到“服务器”代码。
上面的链接有工作示例,但很简单:
App.xaml.cs:
MainWindow.xaml.cs