WebBrowserからWebView2へ(2)

スポンサーリンク

WEBVIEW2を使用してみる(2)サイト遷移と待機処理

前回に続いて、早速表示させたブラウザコントロールのDOM操作を。。。
と思ったけどその前に。

機能的には「サイト遷移」→「遷移完了」→「DOM操作」と順序だてて処理させたいので、
まずは以下処理を非同期的に行えるようにしたいと思う。
・ ボタンをクリックしたら指定URLサイトへ遷移。
・ サイト遷移完了を待つ。

開発環境

・ Windows10
・ Microsoft Visual Studio 2019 (VB .NET)

サイト遷移

Navigateメソッドでサイト遷移を実行。このへんはWebbrowserコントロールと同じみたい。

webview.CoreWebView2.Navigate("https://www.google.com") 

完了待ち

前回作ったソースではWebView2のNavigationCompletedイベントで完了判定してたけど
今回は非同期で待機させたい+タイムアウト判定もしたい。

ということで色々調べてみたところ、すごい参考になるサイト様を発見。
とてもわかりやすい。欲しかった情報が豊富。ありがたい。ありがたい。
プログラムでネットサーフィン様

ざっくり書くと
・System.Threading.CountdownEventをつかう。
・condition.waitでイベント発生待ち
・NavigationCompletedイベントが発生したらcondition.Signal()でシグナル状態となり
 Wait解除(待機完了)。そのあとcondition.Reset()でシグナル状態解除。

Private ReadOnly condition As New System.Threading.CountdownEvent(1)

サンプルコード

せっかくならWebView2もいろいろカスタムしたいので、今回から継承クラス作成。
ClsWebView.vb


フォームにはボタンとWebView2継承クラスを設置
Form1.vb

Googleさんへサイト遷移完了あとにYahooさんへ遷移しました。

つぎはようやくDOM操作にはいります。

タイトルとURLをコピーしました