请原谅我的格式,因为这是我的第一篇文章。我一直在使用旧版应用程序,他们添加了一个新的 UI。这只是一个 POC,用于展示我们可以制作瘦客户端,并在线托管我们的项目。
我有一个WPF窗口(.NET Framework 4.7.2(,带有WebBrowser用户控件。我的网站有一个与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);
}
}
事实证明,我的 window.external 语法不正确。虽然window.external'comVisibleFunctionname'在本地工作,但synax是(window.external(。你好世界((.它与我的棉绒争论,但我相信这是由于贬值