Skip to content

Commit e470298

Browse files
authored
Merge pull request #120 from mlipok/patch-1
Update NetWebView2Lib.au3 - one common endpoint for entire functions
2 parents cbeae88 + 425abb6 commit e470298

7 files changed

Lines changed: 590 additions & 476 deletions

NetWebView2Lib.au3

Lines changed: 565 additions & 460 deletions
Large diffs are not rendered by default.

examples/002-Html_Gui.au3

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,12 @@ Func _Create_Form(ByRef $oWebV2M, ByRef $oBridge)
7575
$oBridge = _NetWebView2_GetBridge($oWebV2M, "__USER_Events_Bridge_")
7676
#forceref $oBridge
7777

78+
GUISetState(@SW_SHOW, $hGUI)
79+
7880
Local $sHTML = "<html><head><meta charset='UTF-8'><style>:" & __FormCSS() & "</style></head><body>" & __FormHTML() & "</body></html>"
7981
_NetWebView2_NavigateToString($oWebV2M, $sHTML, $NETWEBVIEW2_MESSAGE__TITLE_CHANGED, "", 5000)
80-
GUISetState(@SW_SHOW, $hGUI)
82+
ConsoleWrite("After: _NetWebView2_NavigateToString()" & @CRLF)
83+
8184
EndFunc ;==>_Create_Form
8285

8386
; Injects a temporary notification box into the web page

examples/003-Multi-Basic.au3

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,14 @@ Func _Main()
1818
Local $hMainGUI = GUICreate("Multi-WebView2 v2.0.0 Standard", 1000, 600, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPCHILDREN))
1919
GUISetState(@SW_SHOW, $hMainGUI)
2020

21-
ConsoleWrite("! --- BROWSER 1 ---" & @CRLF)
21+
ConsoleWrite("--- BROWSER 1 ---" & @CRLF)
2222
Local $oWeb_1, $oBridge_1, $h_WebWindow_1, $sEventPrfix_1 = "__UserEventHandler_Web1_", $sProfile_1 = @TempDir & "\User_A", $s_AddBrowserArgs_1 = ""
2323
_NetWebView2_BrowserSetupWrapper($hMainGUI, $oWeb_1, $sEventPrfix_1, $sProfile_1, $oBridge_1, $h_WebWindow_1, 10, 10, 480, 500, $s_AddBrowserArgs_1)
24-
ConsoleWrite("! $h_WebWindow_1 = " & $h_WebWindow_1 & @CRLF)
25-
ConsoleWrite("! BrowserWindowHandle = " & $oWeb_1.BrowserWindowHandle & @CRLF)
2624
_NetWebView2_NavigateToString($oWeb_1, _GetDemoHTML("Browser 1 Content"))
2725

28-
ConsoleWrite("! --- BROWSER 2 ---" & @CRLF)
26+
ConsoleWrite("--- BROWSER 2 ---" & @CRLF)
2927
Local $oWeb_2, $oBridge_2, $h_WebWindow_2, $sEventPrfix_2 = "__UserEventHandler_Web2_", $sProfile_2 = @TempDir & "\User_B", $s_AddBrowserArgs_2 = ""
3028
_NetWebView2_BrowserSetupWrapper($hMainGUI, $oWeb_2, $sEventPrfix_2, $sProfile_2, $oBridge_2, $h_WebWindow_2, 510, 10, 480, 500, $s_AddBrowserArgs_2)
31-
ConsoleWrite("! $h_WebWindow_2 = " & $h_WebWindow_2 & @CRLF)
32-
ConsoleWrite("! BrowserWindowHandle = " & $oWeb_2.BrowserWindowHandle & @CRLF)
3329
_NetWebView2_NavigateToString($oWeb_2, _GetDemoHTML("Browser 2 Content"))
3430

3531
__Example_Log(@ScriptLineNumber, "END - close window to exit" & @CRLF)
@@ -43,7 +39,7 @@ Func _Main()
4339

4440
; CleanUp
4541
_NetWebView2_CleanUp($oWeb_1, $oBridge_1)
46-
;~ _NetWebView2_CleanUp($oWeb_2, $oBridge_2)
42+
_NetWebView2_CleanUp($oWeb_2, $oBridge_2)
4743
EndFunc ;==>_Main
4844

4945
; ==============================================================================
@@ -146,4 +142,3 @@ Func __Example_Log($s_ScriptLineNumber, $sString, $iError = @error, $iExtended =
146142
ConsoleWrite(@ScriptName & ' SLN=' & $s_ScriptLineNumber & ' [' & $iError & '/' & $iExtended & '] ::: ' & $sString & @CRLF)
147143
Return SetError($iError, $iExtended, '')
148144
EndFunc ;==>__Example_Log
149-

examples/006-DownloadDemo.au3

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,15 @@ Func _Example()
6363
While 1
6464
Switch GUIGetMsg()
6565
Case $GUI_EVENT_CLOSE
66+
ConsoleWrite('$GUI_EVENT_CLOSE fired' & @CRLF)
6667
ExitLoop
6768
EndSwitch
6869
WEnd
6970

71+
_NetWebView2_CleanUp($oWebV2M, $oJSBridge)
7072
GUIDelete($hGUI)
7173
#EndRegion ; GUI Loop
7274

73-
_NetWebView2_CleanUp($oWebV2M, $oJSBridge)
7475
EndFunc ;==>_Example
7576

7677
; Advise using 'Volatile' for Event Handlers to ensure the WebView2 COM thread can interrupt the main script safely.

examples/007-HTTP_StatusCodeTracking.au3

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ Func WebEvents_OnMessageReceived($oWebV2M, $hGUI, $sMsg)
6767
ConsoleWrite("- _WinAPI_GetClientWidth($hWnd)=" & _WinAPI_GetClientWidth($hWnd) & @CRLF) ; working
6868
; End part of the $hGUI handle explanation }
6969

70-
7170
ConsoleWrite(">>> [WebEvents]: " & (StringLen($sMsg) > 150 ? StringLeft($sMsg, 150) & "..." : $sMsg) & @CRLF)
7271
Local $iSplitPos = StringInStr($sMsg, "|")
7372
Local $sCommand = $iSplitPos ? StringStripWS(StringLeft($sMsg, $iSplitPos - 1), 3) : $sMsg
@@ -134,7 +133,7 @@ Func WebEvents_OnWebResourceResponseReceived($oWebV2M, $hGUI, $iStatusCode, $sRe
134133
Local $sLog = StringFormat("! [HTTP %d] | %s | URL: %s", $iStatusCode, $sReasonPhrase, $sRequestUrl)
135134
ConsoleWrite($sLog & @CRLF)
136135

137-
Local $oGuard = ObjEvent("AutoIt.Error", "__NetWebView2_fake_COMErrFunc")
136+
Local $oGuard = ObjEvent("AutoIt.Error", __NetWebView2_fake_COMErrFunc)
138137
#forceref $oGuard
139138

140139
; Management example:
@@ -157,3 +156,7 @@ EndFunc ;==>WebEvents_OnWebResourceResponseReceived
157156

158157
#EndRegion ; === EVENT HANDLERS ===
159158

159+
Func __Example_Log($s_ScriptLineNumber, $sString, $iError = @error, $iExtended = @extended)
160+
ConsoleWrite(@ScriptName & ' SLN=' & $s_ScriptLineNumber & ' [' & $iError & '/' & $iExtended & '] ::: ' & $sString & @CRLF)
161+
Return SetError($iError, $iExtended, '')
162+
EndFunc ;==>__Example_Log

examples/014-pdfJS-Static_PDF_Viewer.au3

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1111
; ⚠️ to make this work, download pdfJS library from https://mozilla.github.io/pdf.js/
1212
; for example:
13-
; https://github.com/mozilla/pdf.js/releases/download/v5.4.624/pdfjs-5.4.624-dist.zip
13+
; https://github.com/mozilla/pdf.js/releases/download/v5.6.205/pdfjs-5.6.205-dist.zip
1414
; and unzip to: @ScriptDir & "\JS_Lib\pdfjs\"
1515
; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1616

@@ -57,9 +57,10 @@ Func _Example()
5757

5858
; navigate to the page
5959
Local $sFileName = "invoice-plugin-sample.pdf"
60-
Local $sRegExp_Title = "(?i) - " & $sFileName
60+
Local $sRegExp_Title = "(?i).*?" & $sFileName
6161

6262
__SetupStaticPDF($oWeb, @ScriptDir & "\" & $sFileName, $sRegExp_Title, True, False, True)
63+
ConsoleWrite("After __SetupStaticPDF() RegExp_Title=" & $sRegExp_Title & @CRLF)
6364

6465
#Region ; now we can call the script directly from the JavaScript library "NetWebView2Lib_pdfjs_Tools.js" - some pdfjs magic stuff ;)
6566
Local $s_JavaScript_snipp = ''
@@ -130,15 +131,21 @@ Func _Example()
130131
_NetWebView2_ExecuteScript($oWeb, $s_JavaScript_snipp, $NETWEBVIEW2_EXECUTEJS_MODE0_FIREANDFORGET)
131132
MsgBox($MB_TOPMOST, "TEST #" & @ScriptLineNumber, "After:" & @CRLF & $s_JavaScript_snipp)
132133

134+
$sRegExp_Title = "(?i).*?" & "dummy.pdf"
133135
$s_JavaScript_snipp = 'PDFViewerApplication.open({ url: "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf" });'
134136
_NetWebView2_ExecuteScript($oWeb, $s_JavaScript_snipp, $NETWEBVIEW2_EXECUTEJS_MODE0_FIREANDFORGET)
137+
_NetWebView2_LoadWait($oWeb, $NETWEBVIEW2_MESSAGE__TITLE_CHANGED, $sRegExp_Title, 5000)
138+
ConsoleWrite("After _NetWebView2_LoadWait() RegExp_Title=" & $sRegExp_Title & @CRLF)
135139
MsgBox($MB_TOPMOST, "TEST #" & @ScriptLineNumber, "After:" & @CRLF & $s_JavaScript_snipp)
136140

137141
;~ $s_JavaScript_snipp = FileRead(@ScriptDir & '\JS_Lib\PDFViewerApplicationEvents.js')
138142
;~ _NetWebView2_ExecuteScript($oWeb, $s_JavaScript_snipp, $NETWEBVIEW2_EXECUTEJS_MODE2_RESULT)
139143

144+
$sRegExp_Title = "(?i).*? - " & "PDF32000_2008.pdf"
140145
$s_JavaScript_snipp = 'PDFViewerApplication.open({ url: "https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf" });'
141146
_NetWebView2_ExecuteScript($oWeb, $s_JavaScript_snipp, $NETWEBVIEW2_EXECUTEJS_MODE0_FIREANDFORGET)
147+
_NetWebView2_LoadWait($oWeb, $NETWEBVIEW2_MESSAGE__TITLE_CHANGED, $sRegExp_Title, 5000)
148+
ConsoleWrite("After _NetWebView2_LoadWait() RegExp_Title=" & $sRegExp_Title & @CRLF)
142149
MsgBox($MB_TOPMOST, "TEST #" & @ScriptLineNumber, "After:" & @CRLF & $s_JavaScript_snipp)
143150

144151
#EndRegion ; now we can call the script directly from the JavaScript library "NetWebView2Lib_pdfjs_Tools.js" - some pdfjs magic stuff ;)
@@ -151,8 +158,8 @@ Func _Example()
151158
EndSwitch
152159
WEnd
153160

154-
GUIDelete($hGUI)
155161
_NetWebView2_CleanUp($oWeb, $oBridge)
162+
GUIDelete($hGUI)
156163
EndFunc ;==>_Example
157164

158165
; Handles custom messages from JavaScript (window.chrome.webview.postMessage)

examples/020-NavigationInterception.au3

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ Func _MainGUI()
5252
EndSwitch
5353
WEnd
5454

55-
GUIDelete($hGUI)
5655
_NetWebView2_CleanUp($oWebV2M, $hGUI)
56+
GUIDelete($hGUI)
5757
Exit
5858
EndFunc ;==>_MainGUI
5959

0 commit comments

Comments
 (0)