thqby / ahk2_lib

MIT License
215 stars 29 forks source link

Example on how to postmessage or send message to AHK from the webview? #2

Closed jonseppanen closed 2 years ago

jonseppanen commented 2 years ago

I cant seem to get the postmessage function to work right.

Thanks

thqby commented 2 years ago

https://docs.microsoft.com/en-us/microsoft-edge/webview2/get-started/win32#step-16---communication-between-host-and-web-content

thqby commented 2 years ago
#Include <WebView2\WebView2>

g := Gui()
g.Show('w600 h500')
wv := WebView2.create(g.Hwnd)
wv.CoreWebView2.add_WebMessageReceived(WebView2.Handler(WebMessageReceivedEventHandler))
wv.CoreWebView2.AddScriptToExecuteOnDocumentCreated('window.chrome.webview.addEventListener("message", event => alert(event.data));window.chrome.webview.postMessage(window.document.URL);', 0)
wv.CoreWebView2.Navigate('https://autohotkey.com')

WebMessageReceivedEventHandler(handler, ICoreWebView2, WebMessageReceivedEventArgs) {
    args := WebView2.WebMessageReceivedEventArgs(WebMessageReceivedEventArgs)
    msg := args.TryGetWebMessageAsString()
    WebView2.Core(ICoreWebView2).PostWebMessageAsString(msg)
}