我正在使用Xamarin.Forms开发基于浏览器的应用程序,其中我创建了多个webview实例 . 当我尝试在webview中加载任何在线网站时,当webview呈现内容时,它会冻结UI . UI根据网站内容冻结几秒钟 .
我试过这个:
Device.BeginInvokeOnMainThread(() => {
Webview.Source = "https://www.cnet.com";
});
但没有运气 .
Updated code:
我有一个网格来保存webview的多个实例:
<Grid x:Name="Parent" BindingContext="{Binding GuideVm, Source={StaticResource VmLocator}}"
HorizontalOptions="Fill" VerticalOptions="Fill"/>
每当用户打开一个新标签时,我都会在上面的“网格”布局中添加一个新的webview:
var browser = new WebView { BindingContext = tab };
browser.SetBinding(WebView.SourceProperty, "UrlSource");
browser.SetBinding(WebView.IsVisibleProperty, "IsWebViewVisible");
Parent.Children.Add(browser);
我正在加载这样的内容:
public Command LoadWebCommand => new Command(OnLoadWeb);
public void OnLoadWeb()
{
try
{
IsWebViewVisible = true;
UrlSource = Url.GetWellFormedUrl();
}
catch (Exception exception)
{
Debug.WriteLine("OnLoadWeb exception: " + exception.StackTrace);
}
}
这个冻结问题就像是,例如当我将www.cnet.com加载到一个选项卡(它有自己的关联webview)时,当它加载cnet网站的内容时,我试图打开一个新选项卡,但它冻结并释放GUI经常会直到webview完全加载cnet网站的内容 .
任何人都可以帮我摆脱这个问题吗?
提前致谢!