WebView2コントロールの基本的な操作
ここではWebView2コントロールの基本的な操作方法について解説します。
Webページの表示
URLを指定してWebページを表示するにはnavigate
メソッドを使用します。
ただし、navigate
メソッドはページの読み込み完了を待ちませんので、
後述する読み込み完了待ちの処理をいれないと、読み込み途中のまま次の処理が行われてしまいます。
実装方法
サンプル
読み込み待ち
navigate
メソッドでWebページを表示したり、リンクのクリックを行ったり、Submitを行った直後は、
ページの読み込み途中なので続けて処理を行うとエラーになります。
ページの読み込みが終わるまで待機する処理が必要です。
WebViewでは読み込みが完了するとNavigationCompleted
イベントが発生しますので、
NavigationCompleted
イベントが発生するまで処理を待機してやります。
実装方法
こちらを参考にしてください。
戻る/進む
閲覧履歴の「戻る」「進む」を行います。
これら操作でもページの読み込みが発生しますので、メソッド実行後に、読み込み完了を待つ処理が必要です。(上記参照)
実装方法
サンプル
中止/リロード
読み込みを中止したり、サイトのリロード(再読み込み)が行えます。
リロードを行った場合はサイトの読み込みが発生しますので、メソッド実行後には読み込み完了を待つ処理が必要です。
実装方法
サンプル
タイトル/URLの取得
現在表示しているサイトのタイトルとURLを取得します。
実装方法
サンプル
Zoomの取得・設定
現在表示しているページのZoomを取得・設定する方法です。
実装方法
ZoomFactor
プロパティにて取得と設定が行えます。
値はdouble型です。
サンプル
Private Sub btnGetZoom_Click(sender As Object, e As EventArgs) Handles btnGetZoom.Click WebView2.CoreWebView2.Navigate("https://web.biz-prog.net/") Dim zoom As Double = WebView2.ZoomFactor 'Zoomの取得 MessageBox.Show(zoom.ToString()) WebView2.ZoomFactor = 0.5 'Zoomの設定 End Sub
private void btnGetZoom_Click(object sender, EventArgs e) { webView2.CoreWebView2.Navigate("https://web.biz-prog.net/"); double zoom = webView2.ZoomFactor; //Zoomの取得 MessageBox.Show(zoom.ToString()); webView2.ZoomFactor = 0.5; //Zoomの設定 }
参考
WebView2.ZoomFactor Propertyhtmlの取得
現在表示しているページのhtmlを取得します。
実装方法
ExecuteScriptAsync
とJavaScriptのコードを使ってhtmlを取得します。
取得した文字列に対して、文字コードの変更と、文頭・文末の余計な文字を除去します。
サンプル
Dim html = Await WebView2.ExecuteScriptAsync("document.documentElement.outerHTML") html = Regex.Unescape(html) html = html.Remove(0, 1) html = html.Remove(html.Length - 1, 1)
var html = await webView2.ExecuteScriptAsync("document.documentElement.outerHTML"); html = Regex.Unescape(html); html = html.Remove(0, 1); html = html.Remove(html.Length - 1, 1);