Cordova 项目从 UIWebView 更换为 WKWebView

[亡魂溺海] 提交于 2020-08-04 23:17:06

 也可查看我的公开笔记:https://www.yinxiang.com/everhub/note/325e6d46-9255-45de-bad3-58689a2022a4

 

ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs.

 

当前 cordova-ios 最新版本 5.1.1
下一个主要版本 cordova-ios 将删除 UIWebView 代码中的所有引用。该标志也将在下一个主要版本中被删除,WKWebView 将是 Cordova 的默认 Web 视图。
 

一、添加 cordova-ios 平台环境

 

cordova platform add ios@5.1.1 --save

 

二、添加 WKWebView 插件

https://www.npmjs.com/package/cordova-plugin-wkwebview-engine

Cordova 项目中添加 cordova-plugin-wkwebview-engine 插件(当前最新版本1.2.1)

cordova plugin add cordova-plugin-wkwebview-engine

 

config.xml 中添加配置

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

    <feature name="CDVWKWebViewEngine">
        <param name="ios-package" value="CDVWKWebViewEngine" />
    </feature>

    <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
</platform>

三、解决 WKWebView 无法访问 http/https 请求

https://www.npmjs.com/package/cordova-plugin-wkwebview-file-xhr

WkWebview 启动的 index.html 不能访问 http/https 请求,需要结合 cordova-plugin-wkwebview-file-xhr 插件。
插件默认只拦截 https 请求
 
Cordova 项目中添加 cordova-plugin-wkwebview-file-xhr 插件
cordova plugin add cordova-plugin-wkwebview-file-xhr

 

config.xml 中添加配置

<preference name="InterceptRemoteRequests" value="all" />

 

WKWebview 无法显示下载的图片
真机下只能显示 Tmp 目录下的图片文件,所以如果你有下载、显示本地图片的,需要更换文件目录为 Tmp目录。
注:Tmp 目录是 file:///var/mobile/Containers/Data/Applications/<GUID of app>/tmp/
可使用 cordova.file.tempDirectory 常量得到这个目录

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!