我正在使用Xamarin.Forms开发基于浏览器的应用程序,其中我创建了多个webview实例。当我尝试在webview中加载任何在线网站时,当webview呈现内容时,它会冻结UI。 UI根据网站内容冻结几秒钟。
我试过这个:
Device.BeginInvokeOnMainThread(() => {
Webview.Source = "https://www.cnet.com";
});
但没有运气。
更新代码:
我有一个网格来保存多个webview实例:
<Grid x:Name="Parent" BindingContext="{Binding GuideVm, Source={StaticResource VmLocator}}"
HorizontalOptions="Fill" VerticalOptions="Fill"/>
我在上面的网格&#39;中添加了一个新的网页浏览布局,每当用户打开一个新标签时:
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网站的内容。
任何人都可以帮我摆脱这个问题吗?
提前致谢!