【问题标题】:Can't handle WebView Navigation无法处理 WebView 导航
【发布时间】:2021-07-05 11:29:38
【问题描述】:

问题可能有点奇怪,但我需要在 Test() 方法结束之前执行 NavigationCompleted() 方法:

public Test()
       {
           WebView wb = new WebView(WebViewExecutionMode.SeparateProcess);
           wb.Navigate(new Uri(@"Url"));
           wb.NavigationCompleted += NavigationCompleted;
       }
       private async void NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
       {

           //some stuff
       }

我不能在 Test() 方法中使用 Thread.Sleep() 因为在这种情况下 WebView 不能做它的东西,因此 NavigationCompleted() 只有在 Test() 方法完成后才会被调用。

【问题讨论】:

    标签: uwp


    【解决方案1】:

    您可以参考this answer 以使用AutoResetEvent 等待NavigationCompleted 事件处理程序发生。如下:

       public AutoResetEvent waitForNavComplete;       
            public async void test()
            {
                waitForNavComplete = new AutoResetEvent(false);
                mywebView.Navigate(new Uri(..));     
                mywebView.NavigationCompleted += MywebView_NavigationCompleted;
                await Task.Run(() => waitForNavComplete.WaitOne());
           
            }
    
            private void MywebView_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
            {
             ……
                waitForNavComplete.Set();
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      • 2022-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多