Страницы

Поиск по вопросам

воскресенье, 29 декабря 2019 г.

Вызов C# функции из javascript

#javascript #c_sharp #wpf #net #callback


У меня есть десктопное приложение на WPF, в котором лежит . В него грузится
один сервис с сайта, для отображения и работы с картами. В зависимости от логики я
через Invoke вызываю там разные javascript функции. 

Что делать, если мне надо подписатся на callback событие? Как из javascript вызвать
функцию на C#? Все что удалось нагуглить написано для использования в ASP.Net/Silverlight,
но как сделать это в обычном десктоп приложении?
    


Ответы

Ответ 1



Самое простое - сделать на С# ComVisible класс и обращаться к нему из JavaScript. Этот класс уже будет обращаться к приложению (через Application.Current).

Ответ 2



Что бы вызвать C# функцию из JavaScript, надо сначала установить ObjectForScripting (свойство WebBrowser класса) видимому COM-объекту: [ComVisible(true)] public class ScriptManager { public ScriptManager() { } public void MyFunc() { MessageBox.Show("MyFunc has been called"); } } В общем, надо создать WebBrowser контрол и свойству ObjectForScripting установить созданный ScriptManager, вот так: WebBrowser wb = new WebBrowser(); wb.ObjectForScripting = new ScriptManager(); wb.Navigate("location here"); Потом, в JavaScript можно вызывать созданный метод так: window.external.MyFunc();

Комментариев нет:

Отправить комментарий