TsgcWebView2 ブラウザコントロール

モダンでフル機能の Microsoft Edge WebView2 (Chromium) ブラウザを Delphi VCL アプリケーションに組み込めます。ビジュアルコンポーネントをフォームに配置し、任意の URL へのナビゲーション、JavaScript の実行、Cookie やダウンロードの管理を、すべてネイティブな Delphi または C++ Builder のコードから行えます。

TsgcWebView2

Microsoft Edge WebView2 (Chromium) をラップするビジュアル VCL コンポーネントです。Parent と Align を設定し、DefaultURL でページを指定するだけで、実際のブラウザがアプリに組み込まれ、必要に応じて COM インターフェースへのフルアクセスも利用できます。

コンポーネントクラス

TsgcWebView2

プラットフォーム

Windows のみ

エディション

Standard / Professional / Enterprise

コンポーネントを配置してナビゲートする

フォームに TsgcWebView2 を配置し、Parent と Align を設定し、DefaultURL でページを指定したら、Navigate を呼び出し、ExecuteScript で JavaScript を実行し、OnNavigationCompleted に反応します。

uses
  sgcWebView2;

var
  WebView2: TsgcWebView2;
begin
  WebView2 := TsgcWebView2.Create(Self);
  WebView2.Parent := Self;
  WebView2.Align := alClient;
  WebView2.DefaultURL := 'https://www.example.com';

  // 実行時にナビゲート
  WebView2.Navigate('https://www.esegece.com');
end;

// JavaScript を非同期で実行(結果は OnScriptExecuted)
procedure TForm1.Button1Click(Sender: TObject);
begin
  WebView2.ExecuteScript('document.title');
end;

// ページの読み込み完了時に反応
procedure TForm1.WebView2NavigationCompleted(Sender: TObject;
  aIsSuccess: Boolean; aWebErrorStatus: Integer);
begin
  if aIsSuccess then
    Caption := WebView2.DocumentTitle;
end;
// uses: sgcWebView2
TsgcWebView2 *WebView2 = new TsgcWebView2(this);
WebView2->Parent = this;
WebView2->Align = alClient;
WebView2->DefaultURL = "https://www.example.com";

// 実行時にナビゲート
WebView2->Navigate("https://www.esegece.com");

// JavaScript を非同期で実行(結果は OnScriptExecuted)
WebView2->ExecuteScript("document.title");

// OnNavigationCompleted ハンドラー
void __fastcall TForm1::WebView2NavigationCompleted(TObject *Sender,
  bool aIsSuccess, int aWebErrorStatus)
{
  if (aIsSuccess)
    Caption = WebView2->DocumentTitle;
}
// namespace: esegece.sgcWebSockets
var webView2 = new TsgcWebView2();
webView2.Parent = this;
webView2.Align = DockStyle.Fill;
webView2.DefaultURL = "https://www.example.com";

// 実行時にナビゲート
webView2.Navigate("https://www.esegece.com");

// JavaScript を非同期で実行(結果は OnScriptExecuted)
webView2.ExecuteScript("document.title");

// OnNavigationCompleted ハンドラー
webView2.OnNavigationCompleted += (sender, e) =>
{
  if (e.IsSuccess)
    Text = webView2.DocumentTitle;
};

主な機能

WebView2 のフルサーフェスをネイティブな Delphi のプロパティ、メソッド、イベントとして公開し、まだラップされていない機能には ICoreWebView2 COM への直接アクセスも利用できます。

ナビゲーション

NavigateNavigateToString は URL またはメモリ上の HTML を読み込み、GoBack / GoForward で履歴を移動し、Reload / Stop で読み込みを制御し、NavigateWithPostData でカスタムのメソッド、ボディ、ヘッダーを発行します。

JavaScript

ExecuteScript(非同期、結果は OnScriptExecuted)または JSON の戻り値を得る ExecuteScriptSync でスクリプトを実行します。AddInitScript はページ読み込みごとにコードを注入し、PostWebMessageAsJson / PostWebMessageAsString でページと通信し、応答は OnWebMessageReceived で受け取ります。

読み取り専用の CookieManagerGetCookiesAddOrUpdateCookieDeleteCookieDeleteAllCookies を公開しており、任意のホストの Cookie を Delphi コードから読み取り、設定、消去できます。

ダウンロード

OnDownloadStartingOnDownloadProgressOnDownloadCompleted でファイルのダウンロードを最初から最後まで傍受・追跡できます。キャンセル、保存先パスのリダイレクト、独自 UI での進捗表示が可能です。

設定 & 構成

SettingsScriptEnabledDevToolsEnabledContextMenuEnabled)で組み込みブラウザを調整し、ZoomFactor を設定し、UserDataFolder で状態を分離し、BrowserExecutableFolder で固定バージョンのランタイムを指定できます。

高度な機能

PrintToPdf / ShowPrintUI でページを保存し、CapturePreviewToFile でスクリーンショットを取得し、SetVirtualHostNameToFolderMapping でローカルコンテンツを配信し、OpenDevToolsWindow で Edge DevTools を開き、音声をミュートし、Basic 認証やサーバー証明書のイベントを処理できます。

Microsoft Edge WebView2 Runtime と、実行ファイルの隣に配置した WebView2Loader.dll が必要です。Windows のみ、Delphi 7 から Delphi 13 まで対応します。

仕様 & 参考資料

このコンポーネントが組み込むエンジンの一次情報源です。

ドキュメント & デモ

コンポーネントリファレンスへのディープリンク、すぐに実行できるデモプロジェクト、そして体験版をダウンロードできます。

オンラインヘルプ — TsgcWebView2 このコンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。
デモプロジェクト — Demos\WebView2 すぐに実行できるサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています — 下記から体験版をダウンロードしてください。
ユーザーマニュアル (PDF) ライブラリ内のすべてのコンポーネントを網羅した包括的なマニュアルです。

アプリにブラウザを組み込む準備はできましたか?

無料体験版をダウンロードして、モダンな Edge/Chromium ブラウザを Delphi アプリケーションに組み込みましょう。