原谅我的格式,因为这是我的第一篇文章。我一直在使用旧版应用程序,他们添加了一个新的 UI。这只是一个 POC,表明我们可以制作瘦客户端,并在线托管我们的项目。
我有一个带有 WebBrowser 用户控件的 WPF 窗口(.NET Framework 4.7.2)。我的网站有一个按钮window.external['HelloWorld']('Hello')
(如下所示)
在本地调试时,交互按计划发生,但在部署时发生。我的本地 WPF 应用程序没有收到来自托管网站的任何内容。本地站点和部署站点都是 HTTPS
指向带有<script>
标签的静态 HTML 网站也可以。
C#(WPF 类)
public partial class TestWindow : Window
{
public TestWindow()
{
InitializeComponent();
webBrowser.Navigate(//insert Angular URL here);
webBrowser.Loaded += webBrowser_Loaded;
}
void webBrowser_Loaded(object sender, RoutedEventArgs e)
{
webBrowser.ObjectForScripting = new ScriptingHelper();
}
}
C#(脚本对象)
[ComVisible(true)]
public class ScriptingHelper
{
public void HelloWorld(string text)
{
MessageBox.Show(text);
}
}
打字稿
onButtonClicked() {
if (window.external && typeof window.external['HelloWorld'] !== 'undefined') {
const helloText = "Hello from website";
window.external['HelloWorld'](hellotext);
}
}