Не добавляется HostObjectToScript (мостик между приложением и js сайта)
Я только начал работать с Visual Studio и искренне не понимаю что я делаю не так. Уже кучу примеров посмотрел, API почитал, вроде все так делаю, но не работает...
Вот так добавляю мостик (это я уже психанул и стал добавлять его абсолютно везде...):
public Main()
{
InitializeComponent();
webView.CoreWebView2InitializationCompleted +=
WebView_CoreWebView2InitializationCompleted;
webView.NavigationCompleted += WebView_NavigationCompleted;
}
private void WebView_NavigationCompleted(object? sender, CoreWebView2NavigationCompletedEventArgs e)
{
var jsBridge = new JSBridge();
webView.CoreWebView2.DOMContentLoaded += CoreWebView2_DOMContentLoaded;
webView.CoreWebView2.AddHostObjectToScript("stb", jsBridge);
}
private void WebView_CoreWebView2InitializationCompleted(object? sender, CoreWebView2InitializationCompletedEventArgs e)
{
var jsBridge = new JSBridge();
webView.CoreWebView2.OpenDevToolsWindow();
webView.CoreWebView2.AddHostObjectToScript("stb", jsBridge);
webView.CoreWebView2.DOMContentLoaded += CoreWebView2_DOMContentLoaded;
}
private void CoreWebView2_DOMContentLoaded(object? sender, CoreWebView2DOMContentLoadedEventArgs e)
{
var jsBridge = new JSBridge();
webView.CoreWebView2.AddHostObjectToScript("stb", jsBridge);
}
Сам мостик:
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
public class JSBridge
{
public void play(String url)
{
Console.WriteLine("JS: play() " + url);
}
}
На сайте вызываю stb.play("blabla") при нажатии на кнопку. Вот DevlTools открывается, а мостик вставляться не хочет... Использую в качестве браузера WebView2.
Ответы (1 шт):
Автор решения: Dmitriy
→ Ссылка
Разобрался.... Нужно было вызывать на странице с помощью chrome.webview.hostObjects.stb.play("blabla");