Cordova最新版本6.1.0升级攻略

最近一段时间,为了项目适配 Apple 的最新条例而头疼,UIWebView 要全部替换为 WKWebView。

先说一下目前项目背景,项目是2014年开启的,我在去年接手,然后今年年底就要完全替换 UIWebView,项目中使用的 SDK 大部分都是当年集成之后再也没有更新过的,所以看着就心烦。

客户端的项目刚开始是用 Cordova 搭建的跨平台应用,之后在项目主体架构不变的情况下,一步步的将 webAPP 转换成了原生 APP
,项目中的 js 文件全部保留,配置文件也在使用,目前热更新相关的已经废弃,在使用的就是以 CDViewController 为基类而实现的 WebView功能,

项目目录

此项目的 Cordova-ios 的版本是 4.1.1,内核自然也就是 UIWebView,而此次的目标就是将版本升级到 6.1.0,这样内核就切换成了 WKWebView。

google 了一遍之后发现没有适合我这个项目的升级攻略,之前官网放出过临时策略,也就是升级到5.1.1,这个版本只是弃用了 UIWebView, 但并没有移除。

官网1.0解决方案

With the versions that are currently released, make sure that you are:

  • using [email protected]

  • add plugin cordova-plugin-wkwebview-engine, preferably the latest version 1.2.1

  • add the following preference flag WKWebViewOnly to the config.xml iOS platform element.
    E.g.

       
       
       
       
       
       
       
       
       
    
    

官网2.0解决方案

这个是升级到 6.1.0 的方案,直接就移除了 UIWebView 相关的代码,但是给出的方案很让人无语。步骤很简单:

cordova platform remove ios
cordova platform add [email protected]

方案一可以用,但是没有一步到位,后期应该还要升级。
方案二,我能说啥,这操作,相当于让我把 APP 删了,没了...

最后实在没有轻松的方案,只能使用方案二了,并且用了一种相当麻烦的方法完成了升级。

简单地说,就是先将 ios目录拷贝一份,然后执行方案二的命令行,之后将拷贝的那份与 APP 相关的文件拷贝回新的 ios 目录,然后 Build 项目,根据错误提示来配置相应的文件即可。

在此实践证明,方案二是可行的,就是麻烦许多,切记执行命令前一定要把项目进行备份。

最后待项目运行成功之后,再在项目根目录执行下方代码:

grep -r UIWebView 项目根目录

然后就可以看到 Cordova 已经不再提示了,也就说明升级成功。


附带说明一下关于网络请求 AFNetWorking 框架的 UIWebView 解决方案:

方案一
pod 'AFNetworking', '~> 4.0' //新版不含UIWebView
方案二
pod 'AFNetworking', '~> 3.0', :source => 'https://github.com/ElfSundae/CocoaPods-Specs.git'

方案二适合老项目,还在用着 3.0版本,又懒得升级新版修改代码的。

以上都已经在项目中实践过,放心参考!

你可能感兴趣的:(Cordova最新版本6.1.0升级攻略)