WebView2 DevToolsProtocolEvent wird nicht ausgelöstC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 WebView2 DevToolsProtocolEvent wird nicht ausgelöst

Post by Anonymous »

Ich versuche, eine App zu erstellen, die die WPF-Komponente WebView2 verwendet. Derzeit arbeite ich daran, die Meldungen und Fehler zu protokollieren, die vom Javascript-Code der Websites mithilfe von console.log() geschrieben werden.
Das ist, was ich gerade habe:

Code: Select all

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);
}
}
}
Wie Sie sehen können, verwende ich die GetDevToolsProtocolEventReceiver-Methode, um Ereignisse in den DevTools zu abonnieren. In der Dokumentation heißt es:
eventName:String – Der vollständige Name des Ereignisses im Format {domain}.{event}.
Weitere Informationen zur DevToolsProtocol-Ereignisbeschreibung und den Ereignisargumenten finden Sie im DevTools Protocol Viewer.
...Und laut DevTools Protocol Viewer ist das Ereignis, nach dem ich suche Log.entryAdded.
Das Problem besteht nun darin, dass der Aufruf GetDevToolsProtocolEventReceiver("Log.entryAdded") zwar keine Ausnahme auslöst, das Ereignis jedoch nie ausgelöst wird, selbst wenn ich sehen kann, dass Dinge in DevTools protokolliert werden. Ich habe sogar versucht, meine eigenen console.log()-Aufrufe im DevTools-Fenster zu schreiben.
Andere Dinge, die ich versucht habe:
  • mit dem Evergreen Standalone Installer, der WebView2 auf dem Computer installiert, oder mit der festen Version (sowohl 87- als auch 88-Versionen), die im Grunde eine tragbare Version von WebView2 ist
  • unter Verwendung der beiden neuesten stabilen Versionen von Microsoft.Web.View2.Core.dll von NuGet, das 1.0.705.50 und die neueste Vorabversion ist
  • sowohl das Log.entryAdded-Ereignis als auch das Console.messageAdded (veraltet) verwenden
  • das Ereignis abonnieren, nachdem ich das DevTools-Fenster geöffnet habe
Was mache ich also falsch?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post