【问题标题】:How to fix UIWebView deprecated Ionic 4如何修复 UIWebView 已弃用的 Ionic 4
【发布时间】:2020-01-13 01:47:50
【问题描述】:

在提交我的最新版本时,苹果突然回了一条消息,说有问题,具体是:

ITMS-90809:不推荐使用的 API - Apple 将停止接受使用 UIWebView API 的应用提交。请参阅https://developer.apple.com/documentation/uikit/uiwebview 了解更多信息。 这意味着什么以及与使用 IONIC 框架相关的内容。 如何解决。

【问题讨论】:

    标签: ionic-framework uiwebview applet ionic4


    【解决方案1】:

    这是目前Ionic框架的一个问题,可以关注ongoing discussion at the official forums

    Ionic 团队声称可以忽略此警告,但有人担心 Apple 可能确实会拒绝使用 Ionic 构建的应用程序,尽管(目前)尚无案例。建议的解决方案是 using Capacitor instead of Cordova,但根据您对 Cordova 插件的使用情况,这可能不是一个选项。

    【讨论】:

      【解决方案2】:

      试试用离子电容Capacitor

      或 将 UIWebView 更新为 WKWebView

      rm platform ios & android
      

      更新和安装 WKwebView 离子cordova插件添加cordova-plugin-ionic-webview --save https://ionicframework.com/docs/v3/wkwebview/

      【讨论】:

      • OP 使用的是一直使用 WKWebView 的 Ionic 4。如果不支持他的插件,也可能无法选择使用 Capacitor。
      【解决方案3】:

      试试用离子电容Capacitor

      https://capacitor.ionicframework.com/

      我们终于把科尔多瓦换成了电容器,并把它变成了我的应用程序

      【讨论】:

        【解决方案4】:

        现在使用cordova是不可能的,即使使用wkwebview的代码中有一些对uiwebview的引用,所以你必须等待cordova处理这个问题,更多细节请参见这个问题:https://github.com/apache/cordova-ios/issues/661

        【讨论】:

          【解决方案5】:

          cordova 团队昨天在 2019-11-25 发布了一个版本 cordova-ios@5.1.0

          此版本解决了来自苹果商店的 ITMS-90809 警报。

          cordova platform remove ios
          cordova platform add ios@5.1.0
          
          Add <preference name = "WKWebViewOnly" value = "true" /> to your config.xml file
          
          Run "cordova prepare ios" to apply the changes.
          

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

          【讨论】:

            【解决方案6】:

            首先删除cordova ios

            cordova platform remove ios
            

            为 ios 添加科尔多瓦

            cordova platform add ios@5.1.0
            

            确保您已安装 WKWebView 插件:如果没有使用以下命令添加。

            cordova plugin add cordova-plugin-ionic-webview@latest
            

            添加

            <feature name="CDVWKWebViewEngine">
            <param name="ios-package" value="CDVWKWebViewEngine" />
            </feature>
            <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
            <preference name="WKWebViewOnly" value="true" /> 
            

            &lt;preference name="WKWebViewOnly" value="true" /&gt;

            到您的 config.xml 文件。

            运行 cordova prepare ios 以应用更改。

            cordova prepare ios
            

            在 Xcode 中将 webkitframework 设置为必需

            【讨论】:

            • 我还更新了所有的cordova插件,而且效果很好!!!
            • 嗨,我可以知道在哪里做最后一步“在 Xcode 中将 webkitframework 设置为必需”吗?
            【解决方案7】:

            1-确保您已将您使用的所有其他插件更新到最新版本。例如使用旧版本的cordova-plugin-inappbrowser 可能会导致此类问题

            2-安装cordova ios的V6+

             ionic cordova platform rm ios 
             ionic cordova platform add ios@6.0.0
            

            我强烈建议您在升级后进行密集的冒烟测试。

            我也会考虑迁移到 Capacitor,尽管它不能满足我对 ATM 的所有需求。

            【讨论】:

              【解决方案8】:

              使用cordova-ios 5.1.0 或更高版本。如果您使用的是 facebook4、googleplus、fcm 和 inappbrowser 插件,请将它们升级到最新版本。迁移到 Capacitor 不是强制性的。

              将此添加到您的 config.xml 文件中

              <preference name="WKWebViewOnly" value="true" />
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2020-02-02
                • 2023-02-19
                • 1970-01-01
                • 2022-10-22
                • 2016-11-03
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多