Cordova iOS WKWebView 整改完美解决方案
Cordova iOS WKWebView 整改完美解决方案
前言说明:2020年3月之前已经上线的项目,可以继续使用UIWebView继续迭代版本,每次提交审核会收到苹果的警告邮件;2020年3月之后的项目,必须使用WKWebView,提交审核才能通过,不然提示二进制数据错误。详情苹果官方说明点击下面链接
UIWebView弃用说明
下面开始介绍把现有或者新建的Cordova项目从使用UIWebView浏览器改造成使用WKWebview浏览器
一、首先安装cordova-plugin-wkwebview-engine插件
写给新手:首先cd cordova项目名称下面
比如:
cordova create Demo com.company.app Demo
cd Demo
cordova plugin add cordova-plugin-wkwebview-engine
老手都会添加插件
安装了插件,你再次运行,进行真机调试,日志就能看到using WKWebView,如果这一步做完了,真机运行出现白屏,找到这个文件cordova_plugins.js,里面的插件引用出现了问题,核对一下各个插件的路径对不对。 注意,安装了这个插件之后,就要把iOS最低兼容的iOS版本从iOS 8调到iOS 9+,看下面修改:
iOS 9+以上才支持WKWebView,至于苹果为什么要这么做呢,自己去百度百科WKWebVIew,会更安全,功能更强大。
二、解决跨域问题(这才是最重要的问题!)
打开Xcode找到这个文件CDVWKWebViewEngine.m,
找到这个方法,里面添加代码 - (WKWebViewConfiguration) createConfigurationFromSettings:(NSDictionary)settings {
WKWebViewConfiguration* configuration = [[WKWebViewConfiguration alloc] init]; ... 这里还有一部分代码,不用删除 ... //在return上面添加下面两行代码 [configuration.preferences setValue:@YES forKey:@"allowFileAccessFromFileURLs"]; [configuration setValue:@YES forKey:@"_allowUniversalAccessFromFileURLs"]; return configuration; }
解决跨域问题,Cookie获取不到的情况。
三、修改config.xml文件,调整部分功能
1、支持页面右滑返回上一页,左滑进入下一页。
<preference name="AllowBackForwardNavigationGestures" value="true" />
注:前提是你打开过下一页。
特别建议:不建议开启这个功能,因为部分页面逻辑是不让随意返回到上一页的,业务逻辑混乱,数据异常,出现bug。
2、只支持WKWebView设置
<preference name="WKWebViewOnly" value="true" />
其他、3DTouch或者AirPlay什么的功能自己百度解决
四、去除苹果警告,顺利通过苹果审核,上架App Store
你发现,你上面的工作都做了,还是会收到苹果警告邮件或者二进制文件被拒绝。那是因为苹果通过代码检测,你的项目中还是存在UIWebView,下面教你怎么快速去除UIWebView的代码:
1、删除6个文件,看下图:
2、使用Xcode打开你的cordova ios项目,就是双击Demo.xcworkspace文件,搜索替换UIWebView为WKWebView. 这一步要注意,可能有一些三方SDK或者网络框架AFNetWork里面也包含UIWebVIew,这就要去更新这些SDK或者网络框架了,修改成WKWebView之后,运行报错的代码行请注释掉。
Cordova iOS WKWebView 整改完美解决方案相关推荐
- IOS APP 国际化 程序内切换语言实现 不重新启动系统(支持项目中stroyboard 、xib 混用。完美解决方案)
IOS APP 国际化 程序内切换语言实现 不重新启动系统(支持项目中stroyboard .xib 混用.完美解决方案) 参考文章: (1)IOS APP 国际化 程序内切换语言实现 不重新启动系统 ...
- iOS 限制输入字数完美解决方案
2019独角兽企业重金招聘Python工程师标准>>> 关于限制输入字数以前也做过,网上也很多方法. 但都不够完美,以前的测试人员也没千方百计的挑毛病,所以就糊弄过去了. 现在这个项 ...
- iOS WKWebView的使用以及遇到的问题
iOS WKWebView的使用以及遇到的问题 一.WKWebView简介 UIWebView自iOS2就有,WKWebView从iOS8才有,毫无疑问WKWebView将逐步取代笨重的UIWebVi ...
- IOS input auto focus 解决方案探究
IOS input auto focus 解决方案探究 开发过hybird的人都知道,在IOS手机下面处于安全策略考虑,不允许JS自动获取input输入框的焦点并调出虚拟键盘,可是从产品角度来看,往往 ...
- asp.net2.0导出pdf文件完美解决方案【月儿原创】
asp.net2.0导出pdf文件完美解决方案 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.5.28 PDF简介:PDF(P ...
- “IIS配置401错误”完美解决方案
"IIS配置401错误"完美解决方案 1.错误号401.1 症状:HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝. 分析: 由于用户匿名访问使用的账号(默认是 ...
- google地图经纬度偏移修正算法完美解决方案
google地图经纬度偏移修正算法完美解决方案 参考文章: (1)google地图经纬度偏移修正算法完美解决方案 (2)https://www.cnblogs.com/moonvan/archive/ ...
- 移动端滚动穿透问题完美解决方案
移动端滚动穿透问题完美解决方案 参考文章: (1)移动端滚动穿透问题完美解决方案 (2)https://www.cnblogs.com/yaiza/p/11384130.html 备忘一下.
- [原创]java读写word文档,完美解决方案
[原创]java读写word文档,完美解决方案 参考文章: (1)[原创]java读写word文档,完美解决方案 (2)https://www.cnblogs.com/ziwuxian/p/89812 ...
最新文章
- Python面向对象编程:深度认识类class
- Oracle学习笔记整理手册
- mysql for centos下载_python数据分析之路——centos下载并配置mysql与navicat的使用
- 785. Is Graph Bipartite? 判断二分图
- SpringCloud学习笔记(1)- Spring Cloud Netflix
- 推荐:Java性能优化系列集锦
- 【ArcGIS|空间分析】数据采集处理(全国大学生GIS技能大赛试题)
- python去头去尾.strip()函数用法:
- vue路由报错Avoided redundant navigation
- 关于android各平台上架心得
- 数据结构学习笔记:算法复杂度的度量之“大O记号”
- MySQL的备份、恢复
- H5填坑笔记--持续更新
- 《虚拟化安全解决方案》一1.2 虚拟环境的威胁
- EXCEL批量替换公式数据变成真两位小数
- c语言学习-输入一个圆的半径,分别求圆的周长,面积和体积
- java mediacoder_MediaCoder转移动设备MP4(高清)
- 实现一个简单的计算器
- oracle宿主常量及变量,oracle入门札记
- UiPath Orchestrator 证书更新
热门文章
- APP设计干货|切图基本知识点规范
- mysql列的数值型,字符型,日期型
- readline库实现命令行自动补全
- spss方差分析_交叉设计及SPSS多因素方差分析
- java安装的时候无效参数,spring-boot 打成jar把后 启动时指定参数无效
- 代码 纪录 软件_「软件资料」-「资讯动态」-软件开发类项目关键文档内容要求...
- eigen 列拼接_R语言-强大的矩阵运算
- 启动报错 classnofoundexception org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
- OpenShift 4 - DevSecOps (2) - 修复 RHACS 发现的安全隐患
- .NET库和向后兼容的技巧——第2部分