我正在开发以前使用 WebBrowser 控件并通过使用 window.external 调用(例如 window.external.myMethod())与 cshtml 网页来回通信的 Office 插件。
我们已切换到使用上个月在 GA 发布的新 WebView2 控件,并更新了我们当前的 cshtml 页面以使用该控件的正确调用(例如 chrome.webview.hostObjects.myObject.myMethod())。
我请求帮助的问题是,我的插件还可以连接到仍在运行这些 cshtml 页面的旧服务器,这些页面包含旧的 window.external 调用。我试图找出一种仍然来回传递值的方法。
我知道每次使用 WebView2 控件加载页面时都可以注入一些 javascript,例如:
await webBrowser.CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync("my javascript");
...我们实际上这样做是为了挂钩几个事件。我们也可以运行 WebView2 的 ExecuteScriptAsync。
我不确定这两种方法是否可行,或者是否有更好的方法我没有想到。如果我要注入一些 Javascript 来运行,它甚至会是什么样子!
希望大家给点建议。。。