Как передать события JavaScript в C# приложение

У меня есть C# приложение с встроенным веб-браузером, в котором запущен Google Earth. Я уже настроил обработку события в JavaScript - оно срабатывает когда пользователь кликает правой кнопкой мыши по глобусу.

function onMapRightClick(event) {
    // Событие успешно перехватывается здесь
    var coordinates = event.getPosition();
    // Как теперь передать данные в C#?
}

Проблема в том, что мне нужно передать это событие из JavaScript в C# код для дальнейшей обработки. Какие есть способы организовать такую связь между JavaScript и C# частью приложения? Желательно с примером кода.

Пробовал WebView2? Там есть классная фишка - PostWebMessageAsJson из JS и WebMessageReceived в C#. Просто делай chrome.webview.postMessage({coords: coordinates}) в JavaScript и ловишь это в C#. Гораздо проще, чем связываться с COM-объектами. Какой веб-контрол используешь?

Делал похожее для приложения с картами. Самый простой способ - window.external в JS для вызова C# методов. Создаешь класс в C# с нужными методами, помечаешь их [ComVisible(true)]. В JS просто вызываешь window.external.SendCoordinates(lat, lng). Только не забудь установить ObjectForScripting для веб-браузера контрола. Работает стабильно, никаких дополнительных библиотек не нужно.

Если используешь WebBrowser, самый простой способ — это window.external. Создай C# класс с атрибутом [ComVisible(true)] и методом для передачи данных, затем установи его как ObjectForScripting. В JS просто вызови window.external.MethodName(coordinates). Однако если это WebView2, то придется использовать postMessage и события.