事件

好的,我将分步为你提供文档内容,并确保每个部分都涵盖完整的解释。下面是第一部分——事件部分,我会逐个函数提供功能说明、参数说明和示例代码。


事件部分 (Events)

1. Create

  • 功能说明Create 事件在 WebView2 控件创建之前触发
  • 参数:无
  • 示例代码
    Private Sub WebView21_Create()
        MsgBox("WebView2 创建中...")
    End Sub
    

2. Ready (如果需要自动打开网站请在这个事件里而不是 FORM_LOAD)

  • 功能说明Ready 事件在 WebView2 控件成功创建并准备好使用时触发。
  • 参数:无
  • 示例代码
    Private Sub WebView21_Ready()
        MsgBox("WebView2 已准备就绪!")
        WebView21.Navigate "http://doc.vb6.pro"
    End Sub
    

3. Error

  • 功能说明:捕获 WebView2 控件初始化过程中发生的错误。
  • 参数
    • code (Long):错误代码。
    • msg (String):错误信息。
  • 示例代码
    Private Sub WebView21_Error(ByVal code As Long, ByVal msg As String)
        MsgBox("错误代码: " & code & " 错误信息: " & msg)
    End Sub
    

4. NavigationStarting

  • 功能说明NavigationStarting 事件在导航开始之前触发,允许开发者在导航前对请求进行修改或取消。
  • 参数
    • Uri (String):导航目标 URL。
    • IsUserInitiated (Boolean):是否由用户触发导航。
    • IsRedirected (Boolean):是否为重定向。
    • RequestHeaders (WebView2RequestHeaders):请求头。
    • Cancel (ByRef Boolean):设置为 True 可取消导航。
  • 示例代码
    Private Sub WebView21_NavigationStarting(ByVal Uri As String, ByVal IsUserInitiated As Boolean, ByVal IsRedirected As Boolean, ByVal RequestHeaders As Object, ByRef Cancel As Boolean)
        If Uri = "http://www.blockedwebsite.com" Then
            Cancel = True
            MsgBox("禁止访问该网站")
        End If
    End Sub
    
    缺陷
    在当前版本中, 此事件的 Uri 参数一直为空, 这个bug暂时无法修复

5. NavigationComplete

  • 功能说明:导航完成后触发该事件。
  • 参数
    • IsSuccess (Boolean):表示导航是否成功。
    • WebErrorStatus (Long):导航失败时的错误状态码。
  • 示例代码
    Private Sub WebView21_NavigationComplete(ByVal IsSuccess As Boolean, ByVal WebErrorStatus As Long)
        If IsSuccess Then
            MsgBox("导航成功完成!")
        Else
            MsgBox("导航失败,错误码:" & WebErrorStatus)
        End If
    End Sub
    

6. SourceChanged

  • 功能说明:当 DocumentURL 属性更新时触发,通常用于页面导航完成后,更新 URL 栏等组件。

  • 参数

    • IsNewDocument (Boolean):是否为新文档。
    • Url (String):当前网址。v1.0.31+
    • Block (Boolean):是否拦截。v1.0.31+
  • 示例代码

    'v1.0.30'
    Private Sub WebView21_SourceChanged(ByVal IsNewDocument As Boolean)
        MsgBox("当前文档已更改:" & WebView21.DocumentURL)
    End Sub
    
    'v1.0.31+'
    Private Sub WebView21_SourceChanged(ByVal IsNewDocument As Boolean, ByVal Url As String, Block As Boolean)
        '    Debug.Print "WebView21_SourceChanged"
        '    Debug.Print WebView21.DocumentURL, vbCrLf
        If Url = "http://doc.vb6.pro/" Then Block = True                            'block or navigate to new url
    End Sub  
    
  • 说明
    由于 WebView21_NavigationStarting 事件的 uri 参数为空的bug暂时无法修复,

此处先给本事件增加了 url 参数和 block 参数, 根据url条件设置 block=true 即可拦截导航
当然了, 也可以直接导航到新的网址去


下一步

如果这部分内容没有问题,我将继续为你提供方法和属性部分的说明。