From 519725bb87ac21c07c36c991bb1a4833fdec6a53 Mon Sep 17 00:00:00 2001 From: Jessica Chen Date: Fri, 11 Sep 2020 11:43:55 -0700 Subject: [PATCH] Move project to use latest release WebView2 SDK 0.9.622.11 --- README.md | 18 +++++++++--------- WebViewBrowserApp.vcxproj | 4 ++-- packages.config | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index e51a517..4d320ea 100644 --- a/README.md +++ b/README.md @@ -20,14 +20,14 @@ A web browser built with the [Microsoft Edge WebView2](https://aka.ms/webview2) WebView2Browser is a sample Windows desktop application demonstrating the WebView2 control capabilities. It is built as a Win32 [Visual Studio 2019](https://visualstudio.microsoft.com/vs/) project and makes use of both C++ and JavaScript in the WebView2 environment to power its features. -WebView2Browser shows some of the simplest uses of WebView2 -such as creating and navigating a WebView, but also some more complex workflows like using the [PostWebMessageAsJson API](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-538/icorewebview2#postwebmessageasjson) to communicate WebViews in separate environments. It is intended as a rich code sample to look at how you can use WebView2 APIs to build your own app. +WebView2Browser shows some of the simplest uses of WebView2 -such as creating and navigating a WebView, but also some more complex workflows like using the [PostWebMessageAsJson API](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-622/icorewebview2#postwebmessageasjson) to communicate WebViews in separate environments. It is intended as a rich code sample to look at how you can use WebView2 APIs to build your own app. ## Requisites * [Microsoft Edge (Chromium)](https://www.microsoftedgeinsider.com/download/) installed on a supported OS. * [Visual Studio](https://visualstudio.microsoft.com/vs/) with C++ support installed. -The Edge Canary channel is recommended for the installation and the minimum version is 85.0.538.0. +The [WebView2 Runtime](https://developer.microsoft.com/microsoft-edge/webview2/) is recommended for the installation and the minimum version is 86.0.622.11. ## Build the browser @@ -41,7 +41,7 @@ Clone the repository and open the solution in Visual Studio. WebView2 is already That's it. Everything should be ready to just launch the app. -*You can get the WebView2 NugetPackage through the Visual Studio NuGet Package Manager. +*You can get the WebView2 NuGet Package through the Visual Studio NuGet Package Manager. **You can also use Visual Studio 2017 by changing the project's Platform Toolset in Project Properties/Configuration properties/General/Platform Toolset. You might also need to change the Windows SDK to the latest version available to you. ## Using versions below Windows 10 @@ -157,7 +157,7 @@ The sections below describe how some of the features in WebView2Browser were imp ### Set up the environment, create a WebView -WebView2 allows you to host web content in your Windows app. It exposes the globals [CreateCoreWebView2Environment](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-538/webview2-idl#createcorewebview2environment) and [CreateCoreWebView2EnvironmentWithOptions](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-538/webview2-idl#createcorewebview2environmentwithoptions) from which we can create the two separate environments for the browser's UI and content. +WebView2 allows you to host web content in your Windows app. It exposes the globals [CreateCoreWebView2Environment](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-622/webview2-idl#createcorewebview2environment) and [CreateCoreWebView2EnvironmentWithOptions](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-622/webview2-idl#createcorewebview2environmentwithoptions) from which we can create the two separate environments for the browser's UI and content. ```cpp // Get directory for user data. This will be kept separated from the @@ -211,7 +211,7 @@ HRESULT BrowserWindow::InitUIWebViews() } ``` -We use the [ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-538/icorewebview2createcorewebview2environmentcompletedhandler) to create the UI WebViews once the environment is ready. +We use the [ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-622/icorewebview2createcorewebview2environmentcompletedhandler) to create the UI WebViews once the environment is ready. ```cpp HRESULT BrowserWindow::CreateBrowserControlsWebView() @@ -251,7 +251,7 @@ HRESULT BrowserWindow::CreateBrowserControlsWebView() } ``` -We're setting up a few things here. The [ICoreWebView2Settings](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-538/icorewebview2settings) interface is used to disable DevTools in the WebView powering the browser controls. We're also adding a handler for received web messages. This handler will enable us to do something when the user interacts with the controls in this WebView. +We're setting up a few things here. The [ICoreWebView2Settings](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-622/icorewebview2settings) interface is used to disable DevTools in the WebView powering the browser controls. We're also adding a handler for received web messages. This handler will enable us to do something when the user interacts with the controls in this WebView. ### Navigate to web page @@ -456,7 +456,7 @@ function reloadActiveTabContent() { ### Communicating the WebViews -We need to communicate the WebViews powering tabs and UI so that user interactions in one have the desired effect in the other. WebView2Browser makes use of set of very useful WebView2 APIs for this purpose, including [PostWebMessageAsJson](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-538/icorewebview2#postwebmessageasjson), [add_WebMessageReceived](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-538/icorewebview2#add_webmessagereceived) and [ICoreWebView2WebMessageReceivedEventHandler](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-538/icorewebview2webmessagereceivedeventhandler). On the JavaScript side, we're making use of the `window.chrome.webview` object exposed to call the `postMessage` method and add an event lister for received messages. +We need to communicate the WebViews powering tabs and UI so that user interactions in one have the desired effect in the other. WebView2Browser makes use of set of very useful WebView2 APIs for this purpose, including [PostWebMessageAsJson](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-622/icorewebview2#postwebmessageasjson), [add_WebMessageReceived](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-622/icorewebview2#add_webmessagereceived) and [ICoreWebView2WebMessageReceivedEventHandler](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-622/icorewebview2webmessagereceivedeventhandler). On the JavaScript side, we're making use of the `window.chrome.webview` object exposed to call the `postMessage` method and add an event lister for received messages. ```cpp HRESULT BrowserWindow::CreateBrowserControlsWebView() @@ -556,7 +556,7 @@ function createNewTab(shouldBeActive) { } ``` -On the host app side, the registered [ICoreWebView2WebMessageReceivedEventHandler](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-538/icorewebview2webmessagereceivedeventhandler) will catch the message and create the WebView for that tab. +On the host app side, the registered [ICoreWebView2WebMessageReceivedEventHandler](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-622/icorewebview2webmessagereceivedeventhandler) will catch the message and create the WebView for that tab. ```cpp case MG_CREATE_TAB: @@ -671,7 +671,7 @@ HRESULT BrowserWindow::SwitchToTab(size_t tabId) ### Updating the security icon -We use the [CallDevToolsProtocolMethod](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-538/icorewebview2#calldevtoolsprotocolmethod) to enable listening for security events. Whenever a `securityStateChanged` event is fired, we will use the new state to update the security icon on the controls WebView. +We use the [CallDevToolsProtocolMethod](https://docs.microsoft.com/microsoft-edge/webview2/reference/win32/0-9-622/icorewebview2#calldevtoolsprotocolmethod) to enable listening for security events. Whenever a `securityStateChanged` event is fired, we will use the new state to update the security icon on the controls WebView. ```cpp // Enable listening for security events to update secure icon diff --git a/WebViewBrowserApp.vcxproj b/WebViewBrowserApp.vcxproj index d13ae15..8bc6619 100644 --- a/WebViewBrowserApp.vcxproj +++ b/WebViewBrowserApp.vcxproj @@ -206,7 +206,7 @@ - + @@ -214,6 +214,6 @@ - + \ No newline at end of file diff --git a/packages.config b/packages.config index 09d744e..f770f73 100644 --- a/packages.config +++ b/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file