WinUI 3.0 - 为啥 UWP 项目要求 MS Edge for Business 用于 WebView2

Posted

技术标签:

【中文标题】WinUI 3.0 - 为啥 UWP 项目要求 MS Edge for Business 用于 WebView2【英文标题】:WinUI 3.0 - Why UWP project is asking for MS Edge for Business for WebView2WinUI 3.0 - 为什么 UWP 项目要求 MS Edge for Business 用于 WebView2 【发布时间】:2020-11-02 02:11:49 【问题描述】:

当我在带有WinUI 3.0UWP 项目中使用WebView2 控件并运行应用程序时,WebView2 控件内的网页不显示。相反,该应用会显示以下消息,将我带到Microsoft Edge for Business 下载页面:

未检测到合适的 Microsoft Edge 版本。请从here 安装最新的 beta 通道版本

问题:为什么它要求使用 Microsoft Edge for Business?我的Windows 10 - Pro 上已经安装了最新版本的MS Edge Canary Channel 和最新版本的MS Edge。我不想安装太多版本。

MainPage.xaml

<Page
  x:Class="UWP_WinUI.MainPage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:local="using:UWP_WinUI"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  mc:Ignorable="d"
  Background="ThemeResource ApplicationPageBackgroundThemeBrush">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Button x:Name="myButton" Click="myButton_Click">Click Me</Button>
        <WebView2 x:Name="wvTest" Grid.Row="1" Source="https://www.bing.com/"/>
    </Grid>
</Page>

应用显示

网页应该显示在按钮控件下方的WebVeiw2 中。但相反,会显示消息(如下所示):

【问题讨论】:

您在项目中使用的是哪个版本的 Webview 2?我建议尝试使用支持的 Edge Canary 版本,它可能有助于修复错误。您可以查看此文档以了解特定 Webview2 版本所需的最低 Edge 版本。 docs.microsoft.com/en-us/microsoft-edge/webview2/releasenotes @Deepak-MSFT 这是使用UWP 模板创建的WinUI 3.0 项目,该模板带有内置的最新WebView2 控件。这与您安装合适版本(通过 NuGeT 包)WebView2 控件等的其他项目不同。我还安装了最新版本的MS Edge Canary(这是我在工作时 WebView2 上的另一个 MS 教程所要求的)那个教程)。 【参考方案1】:

当我在带有 WinUI 3.0 的 UWP 项目中使用 WebView2 控件并运行应用程序时,WebView2 控件内的网页不显示。相反,该应用会显示以下消息,将我带到 Microsoft Edge for Business 下载页面

您可以基于Getting Started在以下平台使用Webview2:

Win32 C/C++ WPF WinForms

UWP 不是其中之一。因为 UWP 是 Windows 应用商店应用,而上述所有平台都是 Windows 桌面应用。所以如果你想在你的应用中使用Webview2,你需要切换你正在使用的平台。 WPF 可能是一个不错的选择。

【讨论】:

如果这是真的,那么我不理解控件和功能下的表格。它似乎表明 webview2 可用。 microsoft.github.io/microsoft-ui-xaml/about.html#win32 @darbid as codendone answered in github 需要的是一个足够新的安装,包含当前推荐的 Beta 通道的 WebView2 运行时。他们还没有测试 WinUI Preview 是否兼容。因此,对于未来,是的,它将得到支持。但目前不建议将其用于生产环境。【参考方案2】:

“WinUI 3.0 Desktop”现已成为WebView2支持的平台,详情请查看本站:https://docs.microsoft.com/en-us/microsoft-edge/webview2/gettingstarted/winui。

如果您计划发布您的 WinUI 3.0 应用程序是一个 UWP 应用程序,那么可能会有一些限制,坦率地说,我不确定这个组合。

【讨论】:

以上是关于WinUI 3.0 - 为啥 UWP 项目要求 MS Edge for Business 用于 WebView2的主要内容,如果未能解决你的问题,请参考以下文章

UWP WinUI TreeView 以编程方式滚动到项目

将新项目添加到绑定的 ItemsSource 时,WinUI 3 UWP TabView 不显示新选项卡

(多)在 UWP 或 WinUI3 中将列表绑定到 TextBlock

UWP C# WINUI NavigationView 如何访问其他页面/视图

微软宣布 WinUI 的重心在于 Win32,而 UWP 还有未来吗?

WinUI 3 中的设计器视图在哪里?