【问题标题】:iOS UIWebView Deprecating. What does this mean for Cordova apps?iOS UIWebView 弃用。这对 Cordova 应用程序意味着什么?
【发布时间】:2019-01-20 06:57:56
【问题描述】:

Apple 正在弃用 iOS 12 的 UIWebView。(https://cordova.apache.org/news/2018/08/01/future-cordova-ios-webview.html)

我有一个 Cordova 应用程序,我对此更改有一些疑问:

  1. 如何判断我的应用是否正在使用 UIWebView?
  2. 预计 Apple 多久会完全移除 UIWebView?
  3. 目前对于 Cordova 应用程序,建议安装 WKWebView 引擎插件。根据自述文件,我所要做的就是安装这个插件,它使 Cordova 使用 WKWebView。真的那么容易吗?添加后,我只是构建并可以测试知道该应用程序仅使用 WKWebView 吗? https://github.com/apache/cordova-plugin-wkwebview-engine

【问题讨论】:

    标签: ios cordova uiwebview wkwebview


    【解决方案1】:

    如何判断我的应用是否在使用 UIWebView?

    如果您在没有任何框架的情况下使用cordova-ios 5.x 或更低版本,它将默认使用UIWebView。如果您使用 cordova-ios 6.0.0 或更新版本,它会使用 WKWebView。

    如果您使用 Ionic,它默认使用自己的 WKWebView 插件(如果您使用 Ionic CLI 启动应用程序)。

    如果您在应用启动时阅读日志,它会显示“Using UIWebView”、“Using WKWebView”或“Using Ionic WebView”或其他类似消息。

    预计苹果多久会完全移除 UIWebView?

    弃用仅意味着它会在未来消失,我们不知道何时,但在 iOS 12 中使用它是安全的,并且在 iOS 13 上也没有被删除。但是您应该尽快开始迁移。 Apple 已开始在提交应用程序时显示警告,即使您不再使用 UIWebView 也会出现警告,因为 cordova-ios 具有 UIWebView 代码并且即使您切换到 WKWebView 也存在于您的应用程序中。 现在只是一个警告,但将来会拒绝应用程序。 还没决定怎么做,可以查看discussion

    目前对于 Cordova 应用程序,建议安装 WKWebView 引擎插件。根据自述文件,我所要做的就是安装它 插件,它使 Cordova 使用 WKWebView。真的那么容易吗? 添加后,我只需构建并可以测试知道应用程序正在使用 仅 WKWebView?

    是的,就是这么简单,但是WKWebView 存在一些可能会影响您的应用的问题,所以请尝试一下。如第一点所述,消息现在应该显示“使用 WKWebView”。

    在您链接的博客文章中报告了已知问题。如果它们影响到您,您可以尝试Ionic WebView,它使用WKWebViewWKURLSchemeHandler 来解决其中一些问题。您无需使用 Ionic 即可使用 Ionic WebView。

    Cordova 有一个本地 Web 服务器插件,您可以使用 wkwebview-engine-localhost 解决一些问题,但在您的应用程序中运行 Web 服务器并不是很好。

    【讨论】:

    • 更新:iOS 12 已移除
    • 不,不是,只是已弃用
    • Cordova iOS Github 页面中的 This message 表示,UIWebview 在 iOS 13 测试版中仍然可用。
    • 是的,评论是我的。我必须更新这个答案
    • 我在我的应用中使用了 cordova-plugin-wkwebvew-enginecordova-plugin-wkwebviewxhrfix
    【解决方案2】:

    Cordova 刚刚发布了一个 Cordova iOS 版本,用于在编译时移除 UiWebView。

    https://cordova.apache.org/announcements/2019/11/25/cordova-ios-release-5.1.0.html

    更新日志:

    The most notable improvements in this minor release are:
        The ability to disable UIWebView during the compile-time.
    

    这是链接的 PR:

    https://github.com/apache/cordova-ios/pull/715
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 2013-08-19
      • 1970-01-01
      • 2016-01-14
      • 2015-12-11
      • 2023-01-03
      • 1970-01-01
      相关资源
      最近更新 更多