Вот что у меня сейчас есть:
Код: Выделить всё
public partial class WebView2BrowserControl : WebView2
{
private async void OnWebViewLoaded(object sender, RoutedEventArgs e)
{
await EnsureCoreWebView2Async();
if (showDeveloperTools)
{
CoreWebView2.GetDevToolsProtocolEventReceiver("Log.entryAdded").DevToolsProtocolEventReceived += OnConsoleMessage;
CoreWebView2.OpenDevToolsWindow();
}
else
{
CoreWebView2.Settings.AreDevToolsEnabled = false;
}
}
private void OnConsoleMessage(object sender, CoreWebView2DevToolsProtocolEventReceivedEventArgs e)
{
if (e != null && e.ParameterObjectAsJson != null)
{
Trace.WriteLine("WebView2:" + e.ParameterObjectAsJson);
}
}
}
eventName:String — полное имя события в формате {domain}.{event}.
Для получения дополнительной информации об описании событий DevToolsProtocol и аргументах событий перейдите к средству просмотра протокола DevTools.
... И согласно Просмотру протокола DevTools, событие, которым я являюсь ищем Log.entryAdded.
Теперь проблема в том, что, хотя вызов GetDevToolsProtocolEventReceiver("Log.entryAdded") не генерирует никаких исключений, событие никогда не возникает, даже если я вижу, что что-то регистрируется в DevTools. Я даже пытался написать свои собственные вызовы console.log() в окне DevTools.
Другие вещи, которые я пробовал:
- использование как автономного установщика Evergreen, который устанавливает WebView2 на компьютер, так и фиксированной версии (версии 87 и 88), которая по сути является портативной версией WebView2
- с использованием обеих последних стабильных версий Microsoft.Web.View2.Core.dll из NuGet 1.0.705.50 и последней предварительной версии
- с использованием события Log.entryAdded и Console.messageAdded (устарело)
- подписка на событие после открытия окна DevTools
Подробнее здесь: https://stackoverflow.com/questions/663 ... ot-raising
Мобильная версия