【发布时间】:2020-11-10 19:45:03
【问题描述】:
我在 Xamarin.Forms 中有一个基本的 WebView,如下所示:
<WebView AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All" x:Name="ChartWebView" Style="{StaticResource BackgroundStyle}">
<WebView.Source>
<HtmlWebViewSource Html="{Binding ChartHTML}" />
</WebView.Source>
</WebView>
我使用 WebView 来显示 Chart.js 图表,它工作得非常好。在我的页面上,我有一个按钮,用户可以在其中请求数据。
private async Task RequestData()
{
//Doing some stuff to get data ...
BuildChartHTML();
}
private void BuildChartHTML()
{
var html = GetChartJSConfigString();
Device.BeginInvokeOnMainThread(() =>
{
ChartWebView.Source = new HtmlWebViewSource
{
Html = html
};
});
}
但是,仅在 iOS 上,每次恰好在第 10 次请求/重新加载时,WebView 都会变为空白。之后它也保持空白。我需要重新导航到此页面以使其重新启动并运行。我尝试按照this 线程中的描述调整WebView.Navigated 的高度,但没有成功。
在具有相同代码库的 Android 上不会出现此问题。
如果这是一个框架错误,请接受任何解决方法。
PS:我显然确保我正在加载的 html 没有损坏。我加载了 10 次相同的数据,并比较了第 10 次加载的 html,WebView 崩溃了。它是完全相同的 HTML 字符串。
【问题讨论】:
-
因为它只在第 10 次才起作用。我认为问题不是由您的代码引起的。您可以将问题发布到 github github.com/xamarin/Xamarin.Forms/issues/new/choose 。我们会跟进。
-
我发现这个错误与 xamarin 无关,但我会发布一个基于 xamarin 的解决方案,作为其他任何为此苦苦挣扎的人的答案
标签: xamarin xamarin.forms xamarin.ios