Как вызвать метод WPF c# из файла .ts с помощью библиотеки dotnetbrowser - PullRequest
0 голосов
/ 09 января 2020

Вот ссылка, которую я дал для класса Acccount. я хочу вызвать метод c# из .ts, то есть из angular, а также отправить данные в метод.

            mainLayout.Children.Add((UIElement)webView.GetComponent());
            webView.Browser.ScriptContextCreated += delegate (object sender, ScriptContextEventArgs e)
            {
                JSValue value = webView.Browser.ExecuteJavaScriptAndReturnValue("window");
                **value.AsObject().SetProperty("Account", new Account());**
                webView.Browser.ExecuteJavaScript("window.Account.Save('FirstName', 'LastName');");
            };
            webView.Browser.LoadURL("http://localhost:4200/");```

Below is class of which method i am calling.

```[ComVisibleAttribute(true)]
    public class Account
    {
        public void Save(String firstName, String lastName)
        {
            Console.Out.WriteLine("firstName = " + firstName);
            Console.Out.WriteLine("lastName = " + lastName);
        }
    }```
here is what i have tried.
window.Account.Save('FirstName', 'LastName');
but no luck so far...

1 Ответ

1 голос
/ 27 марта 2020

используя DotNetBrowser 2.0

C# side

IBrowser browser;
IEngine engine;

engine = EngineFactory.Create(new EngineOptions.Builder
{
    LicenseKey = "your_license",
    RenderingMode = RenderingMode.HardwareAccelerated,
}
.Build());

browser = engine.CreateBrowser();
browser.InjectJsHandler = new Handler<InjectJsParameters>(p =>
{
    IJsObject window = p.Frame.ExecuteJavaScript<IJsObject>("window").Result;
    window.Properties["callback"] = this;
});

public void Action(string value)
{
    Console.WriteLine("call back value : "+value);
}

javascript side (веб-сторона)

window.callback.Action('test this');

вы можете получить console.log, как показано ниже

Значение обратного вызова: проверьте это

...