gpt4 book ai didi

xamarin - 从 UIWebView 迁移到 WKWebView 后性能显着下降

转载 作者:行者123 更新时间:2023-12-01 03:03:02 24 4
gpt4 key购买 nike

我正在处理的项目使用 Xamarin Forms (3.4.0.x) 跨平台,因此显然 iOS 应用程序内置了 UIWebView。

我们决定迁移到 WKWebView,这需要 Xamarin Forms 4.4 更新,所以我们继续这样做,然后添加了 [assembly: ExportRenderer(typeof(WebView), typeof(Xamarin.Forms.Platform.iOS.WkWebViewRenderer))]到我们 iOS 应用程序中的 AssemblyInfo.cs,就像它在这里说的那样。 https://github.com/xamarin/Xamarin.Forms/pull/3346

现在我认为这就是我完全迁移到 WK 所需要做的一切,但我注意到应用程序的速度明显变慢,加载页面的时间是原来的 5 倍,而且最重要的是,这个加载图标甚至停留在屏幕上页面加载完成后

我的问题是:
我是否正确迁移,或者是否有任何我遗漏/做错的步骤?有没有人遇到过这个加载图标问题?请让我澄清我是否遗漏了信息,我是 Xamarin Forms 的新手,所以我不确定如何提出最好的问题,这是我被介绍的一个大项目。有人告诉我没有自定义的 iOS WebView Renderer,所以一切都是使用默认的 WebView 完成的。

谢谢!

最佳答案

a native iOS issue因为在网页上检测电话号码需要时间。因此,如果您只是禁用该检测,它应该会更好地工作。
下面是如何在 Xamarin 中执行此操作的示例:

var urlRequest = new NSUrlRequest(new NSUrl("https://www.gooogle.com"));
var config = new WebKit.WKWebViewConfiguration();
config.DataDetectorTypes = WebKit.WKDataDetectorTypes.Address;
var frame = new CoreGraphics.CGRect();
var webView = new WebKit.WKWebView(frame, config);
webView.LoadRequest(urlRequest);
如果您点击了您共享的链接,您应该能够将代码放入 WkWebViewRenderer 的 SetElement 函数中。所以你的代码看起来像这样:
var config = new WebKit.WKWebViewConfiguration();
config.DataDetectorTypes = WebKit.WKDataDetectorTypes.Address;
WebView = new WebKit.WKWebView(WebView.Frame, config);

关于xamarin - 从 UIWebView 迁移到 WKWebView 后性能显着下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59887093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com