【问题标题】:Replace WebView with WKWebView in Xamarin Forms application在 Xamarin Forms 应用程序中用 WKWebView 替换 WebView
【发布时间】:2020-04-26 08:46:16
【问题描述】:

我的 Xamarin Forms 应用程序中有一个 webview,它可以打开从服务器下载的 html 格式的报告。今天我将我归档的应用程序上传到应用商店并获取有关ITMS-90809: UIWebView API Deprecation 的信息。

问题是我不知道如何在跨平台应用程序中用 WKWebView 替换 UIWebView。我尝试了几种解决方案:

1) 为 WebView 创建自定义渲染器 - 但这并不是真正的解决方案,因为我需要通过 WebView 超类继承我的新类。所以 Apple 再次用同样的信息警告我。

2) 仅在 ios 项目中创建依赖服务并使用自定义渲染器。但这是同样的问题 - 共享项目中仍然存在 WebView 引用。

那么,有没有什么办法可以直接将 WKWebView 注入 iOS 中的 StackLayout 呢?我知道 WKWebView 仅适用于 iOS,而 StackLayout 是 Xamarin.Forms 组件,但我真的不知道该怎么做。

谁能帮帮我?

【问题讨论】:

  • 这会有帮助吗? forums.xamarin.com/discussion/129626/… 看起来在渲染器中它将组件设置为 WKWebView 而不是常规的 UIWebView。
  • 这是我的解决方案 1。它不适合我
  • 但是当您在 Xamarin.Forms 中时,WebView 只是它对幕后内容的表示;我假设在您的 AssemblyInfo.cs 中它没有设置为: [assembly: ExportRenderer(typeof(Xamarin.Forms.WebView), typeof(Xamarin.Forms.Platform.iOS.WebViewRenderer))] 因为这会将其切换回默认 UIWebView

标签: xamarin.forms uiwebview wkwebview


【解决方案1】:

Github 中有一个问题你可以关注:Deprecated API Usage UIWebView

iOS 中的WebViewRenderer 实现UIWebView,即使切换WkWebViewRenderer 文件也会保留。这就是您收到错误消息的原因。

Xamarin 团队正在努力,它将在未来的某个时间修复。

另外,还有an Apple statement说:

App Store 将不再接受使用 UIWebView 的新应用 2020 年 4 月和截至 2020 年 12 月使用 UIWebView 的应用更新。

所以你现在仍然可以使用 UIWebView 提交应用程序,错误消息只是一个警告。

相关链接:Make WkWebViewRenderer default for iOS WebView

【讨论】:

    猜你喜欢
    • 2017-07-19
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多