#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();
Комментариев нет:
Отправить комментарий