我們最近發布了說明,說明如何更新您的應用程式以移除所有 UIWebView
參考,因為 Apple 現在會拒絕所有使用 UIWebView
的應用程式。
我們正在討論這個警告
ITMS-90809:已棄用 API 使用 - Apple 將停止接受使用 UIWebView API 的應用程式提交。
自上次發布以來,有些事情發生了變化,並且發布了新版本的 cordova-ios。
將 cordova-ios 更新至 6.0.0 或更新版本
請更新至最新的 cordova-ios
版本,以獲得與最近 iOS 變更的最佳相容性。截至撰寫本文時,目前版本為 6.1.0。cordova-ios 的 6.0.0 版本將 WKWebView
支援移至 cordova-ios
中,並移除了 UIWebView
程式碼。由於此變更,cordova-plugin-wkwebview-engine
外掛程式已過時,且無法在此版本中使用。如果您已安裝此外掛程式,可以安全地使用 cordova plugin remove cordova-plugin-wkwebview-engine
移除它。
此外,此版本還引入了 WKURLSchemeHandler
支援。透過自訂協定提供您的應用程式內容可解決由於 WKWebView
對 file
協定套用的嚴格安全性原則而存在的 CORS 問題。您可以在 config.xml
檔案中設定偏好設定選項 scheme
和 hostname
,輕鬆設定您的 Cordova 專案使用自訂協定。請注意,使用自訂 URL 協定執行您的應用程式會變更您的網頁程式碼的來源,您將無法存取網頁儲存空間,例如本機儲存空間、索引資料庫等。
<preference name="scheme" value="app" />
<preference name="hostname" value="localhost" />
重要的是要知道,隨著 WKURLSchemeHandler
的引入,已不再支援 iOS 10。
仍然收到警告?
如果您仍然收到警告,很可能是您專案中的一個或多個外掛程式仍然參考 UIWebView
。您需要找出哪些外掛程式包含 UIWebView
程式碼,並透過其支援管道(例如外掛程式的儲存庫)聯絡這些外掛程式的開發人員。他們需要透過移除參考或使用新的標記來修正其外掛程式。
使用其他 WKWebView 外掛程式
這些 cordova-ios
版本不再需要官方 Apache WKWebView 外掛程式,因為已整合 WKWebView
並且已移除 UIWebView
。可以使用其他 WKWebView 外掛程式。請確保它們已更新並使用最新版本。如果您對它們的外掛程式有任何問題或使用上的疑問,請閱讀它們的文件並透過其支援管道請求協助。
CORS 問題
如果您遇到任何 CORS 問題,Cordova PMC 成員 Norman Breau 在他的部落格文章中對 CORS 提供了很好的解釋。
Weview 問題
如果使用自訂協定,WKWebView
將不允許在 img/video 標籤中載入檔案 URL(也不會擷取它們或任何其他內容)。cordova-ios
新增了一個輔助方法,可將檔案 URL 轉換為具有協定的 URL,並且 WKWebView
可以理解。
window.WkWebView.convertFilePath('您的/檔案/路徑');