共用方式為


在 WebView2 應用程式中使用 Chrome DevTools 通訊協定 (CDP)

Chrome DevTools 通訊協定提供 API 來檢測、檢查、偵錯和配置檔 Chromium 型瀏覽器。 Chrome DevTools 通訊協定是 Microsoft Edge DevTools 的基礎。 針對 WebView2 平臺中未實作的功能,請使用 Chrome DevTools 通訊協定。

若要在 WebView2 應用程式中使用 Chrome DevTools 通訊協定 API,請執行下列其中一項:

使用 DevToolsProtocolHelper

包含 DevToolsProtocolExtensionDevToolsProtocolHelper 物件。

Microsoft.Web.WebView2.DevToolsProtocolExtension 是由 WebView2 小組建立的 NuGet 套件,可讓您輕鬆存取 Chrome DevTools 通訊協定功能。 下列範例說明如何在 WebView2 控制件的 Chrome DevTools 通訊協定中使用地理位置功能。 若要使用其他 Chrome DevTools 通訊協定功能,您可以遵循類似的模式。

步驟 1:建立網頁以尋找您的地理位置

若要建立 HTML file 來尋找您的地理位置,請完成下列動作。

  1. 開啟 Visual Studio Code (或您選擇的 IDE) 。

  2. 建立新的 .html 檔案。

  3. 在新的檔案中 .html 貼上下列程式代碼:

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <title>Geolocation Finder</title>
    </head>
    <body>
       <button id="display">Display Location</button>
       <div id="message"></div>
    </body>
    
    <script>
       const btn = document.getElementById('display');
       // Find the user location.
       btn.addEventListener('click', function () {
          navigator.geolocation.getCurrentPosition(onSuccess, onError);
       });
    
       // Update message to display the latitude and longitude coordinates.
       function onSuccess(position) {
          const {latitude, longitude} = position.coords;
          message.textContent = `Your location: (${latitude},${longitude})`;
       }
    
       function onError() {
          message.textContent = `Operation Failed`;
       }
    </script>
    </html>
    
  4. .html使用檔案名 geolocation.html儲存盤案。

  5. 開啟 Microsoft Edge。

  6. 開啟 geolocation.html

  7. 若要顯示緯度和經度座標,請按兩下 [ 顯示位置 ] 按鈕。 若要確認並比較您的地理位置,請在 中 https://www.bing.com/maps複製並貼上您的座標。

    在 Microsoft Edge 中顯示使用者的地理位置座標

步驟 2:在 WebView2 中顯示 geolocation.html

  1. 若要建立 WebView2 應用程式,請使用開始使用指南或 WebView2 範例:

  2. 將 WebView2 控制件的初始導覽設定為 geolocation.html

    webView.CoreWebView2.Navigate(@"C:\{path\to\file}\geolocation.html");
    
  3. 請確定 geolocation.html 檔案顯示在您的 WebView2 控制程式應用程式中:

    WebView2 控制程式應用程式中顯示的 geolocation.html 檔案

步驟 3:安裝 DevToolsProtocolHelper NuGet 套件

使用 NuGet 下載 Microsoft.Web.WebView2.DevToolsProtocolExtension

若要安裝套件:

  1. 取 [專案>管理 NuGet 套件>流覽]

  2. 輸入 Microsoft.Web.WebView2.DevToolsProtocolExtension ,然後選取 [Microsoft.Web.WebView2.DevToolsProtocolExtension>Install]

  3. 確定 Microsoft.Web.WebView2.DevToolsProtocolExtension 顯示在 Visual Studio NuGet 套件管理員中:

    確定 Visual Studio NuGet 套件管理員中顯示 Microsoft.Web.WebView2.DevToolsProtocolExtension

步驟 4:使用 DevTools 通訊協定協助程式

  1. DevToolsProtocolExtension將命名空間新增至您的專案:

    using Microsoft.Web.WebView2.Core;
    using Microsoft.Web.WebView2.Core.DevToolsProtocolExtension;
    
  2. 具現化 物件並 DevToolsProtocolHelper 巡覽至 geolocation.html

    async void InitializeAsync()
    {
       await webView.EnsureCoreWebView2Async(null);
       DevToolsProtocolHelper helper = webView.CoreWebView2.GetDevToolsProtocolHelper();
    
       webView.CoreWebView2.Navigate(@"C:\{path\to\file}\geolocation.html");
    }
    
  3. 執行 setGeoLocationOverrideAsync 方法:

    async void InitializeAsync()
    {
       await webView.EnsureCoreWebView2Async(null);
       DevToolsProtocolHelper helper = webview.CoreWebView2.GetDevToolsProtocolHelper();
    
       // Latitude and longitude for Paris, France.
       double latitude = 48.857024082572565;
       double longitude = 2.3161581601457386;
       double accuracy = 1;
       await helper.Emulation.setGeolocationOverrideAsync(latitude, longitude, accuracy);
    }
    

    如需詳細資訊,請參閱 setGeolocationOverride

  4. 執行您的應用程式。

  5. 若要顯示法國巴黎的座標,請按兩下 [ 顯示位置 ] 按鈕:

    使用巴黎的座標,在 WebView2 控件中顯示 .html 檔案

提出 Chrome DevTools 通訊協定的 Bug 或功能要求

若要要求 WebView2 平臺功能,請在 WebView2Feedback 存放庫中輸入新問題。

若要提出有關 Chrome DevTools 通訊協定的錯誤,請在 Chromium Bug 資料庫中提出 Bug 報告。

Chrome DevTools 通訊協定是由 開放原始碼 Chromium 項目維護,而不是由 Microsoft Edge WebView2 小組維護。

另請參閱