Cordova 項目從 UIWebView 更換為 WKWebView


 也可查看我的公開筆記: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 常量得到這個目錄

 

 除了項目從 UIWebView 更換為 WKWebView 外,項目中所有使用的 Cordova 插件都不能有 UIWebView 的 API。項目中使用的插件更新至最新版本(如果作者進行了適配),若插件不適配需考慮尋找替代插件。

官方說明:https://cordova.apache.org/howto/2020/03/18/wkwebviewonly.html

 

2020年07月31日筆記更新

 

Cordova 官方已發布了最新版本 Cordova iOS 6.1.0

官方 GitHub 網址:https://github.com/apache/cordova-ios

 

 

Cordova ios 6.0.0 版本開始,只支持 WKWebView 移除了 UIWebView 代碼,因此 cordova-plugin-wkwebview-engine 插件被棄用,因安全策略導致的 CORS 問題,將通過首選項設置。啟動頁配置也有相應更新,具體更新內容見官方博客:

Cordova ios 6.0.0:https://cordova.apache.org/announcements/2020/06/01/cordova-ios-release-6.0.0.html

Cordova ios 6.1.0:https://cordova.apache.org/announcements/2020/06/23/cordova-ios-6.1.0.html

啟動頁設置cordova-plugin-splashscreen):https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-splashscreen/index.html

ITMS-90809 警告說明https://cordova.apache.org/howto/2020/07/18/uiwebview-warning.html

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM