window.external 在指向本地 Angular 8 网站的 WPF WebBrowser 中工作,但在部署时



请原谅我的格式,因为这是我的第一篇文章。我一直在使用旧版应用程序,他们添加了一个新的 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(。你好世界((.它与我的棉绒争论,但我相信这是由于贬值

最新更新