Xamarin WebView 有时不显示在 UWP 中
Xamarin WebView sometimes doesn't show in UWP
我有一个 WebView,它会在用户启动应用程序时显示条款和条件。该 WebView 包含一些链接。目前,我将条款和条件作为 html 文件存储在资源中。
在代码隐藏中,我通过以下方式填充 WebView:
public partial class Agb : ContentPage
{
public Agb()
{
InitializeComponent();
BindingContext = new ViewModel.AgbViewModel();
Web.Source = new HtmlWebViewSource
{
Html = Properties.Resources.Agb
};
Web.Navigating += WebViewNavigating;
}
XML:
<WebView
x:Name="Web"
VerticalOptions="FillAndExpand"
Margin="50,0"/>
大多数情况下这都很好用。在 UWP 上,此 WebView 有时无法显示。它总是显示在我自己的电脑上,但在生产中随机失败。
我能做些什么来让 WebView 可靠地工作吗?
选项 1:
我已经在 Xamarin.Forms 中制作了 a pull request to fix this bug,所以只需将 Xamarin.Forms 更新到一个版本,它将被合并。
然而,虽然修复尚不存在,而且修复可能不适用于 4.4.0 之前的 Xamarin.Forms 早期版本,但以下是在您的项目中修复它的方法:
选项 2
将 WebViewRenderer_fix.cs 文件添加到您的项目中。此文件基于 v4.4.0,但如果您看到构建错误,您可能需要自行将修复应用到此文件的早期版本。
并且不要忘记将其注册为您的 WebView
的自定义渲染器
[assembly: ExportRenderer(typeof(WebView), typeof(WebViewRenderer_fix))]
我有一个 WebView,它会在用户启动应用程序时显示条款和条件。该 WebView 包含一些链接。目前,我将条款和条件作为 html 文件存储在资源中。
在代码隐藏中,我通过以下方式填充 WebView:
public partial class Agb : ContentPage
{
public Agb()
{
InitializeComponent();
BindingContext = new ViewModel.AgbViewModel();
Web.Source = new HtmlWebViewSource
{
Html = Properties.Resources.Agb
};
Web.Navigating += WebViewNavigating;
}
XML:
<WebView
x:Name="Web"
VerticalOptions="FillAndExpand"
Margin="50,0"/>
大多数情况下这都很好用。在 UWP 上,此 WebView 有时无法显示。它总是显示在我自己的电脑上,但在生产中随机失败。
我能做些什么来让 WebView 可靠地工作吗?
选项 1:
我已经在 Xamarin.Forms 中制作了 a pull request to fix this bug,所以只需将 Xamarin.Forms 更新到一个版本,它将被合并。
然而,虽然修复尚不存在,而且修复可能不适用于 4.4.0 之前的 Xamarin.Forms 早期版本,但以下是在您的项目中修复它的方法:
选项 2
将 WebViewRenderer_fix.cs 文件添加到您的项目中。此文件基于 v4.4.0,但如果您看到构建错误,您可能需要自行将修复应用到此文件的早期版本。
并且不要忘记将其注册为您的 WebView
[assembly: ExportRenderer(typeof(WebView), typeof(WebViewRenderer_fix))]