You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cordova升级UIWebView至WKWebView遇'CDVURLProtocol.h'缺失错误求助

解决Cordova iOS升级6.0.0后WKWebView适配及CDVURLProtocol.h缺失问题

1. 清理旧残留与缓存

先彻底清理可能存在的旧插件、平台文件和缓存,避免版本冲突:

# 移除已安装的WKWebView插件
cordova plugin remove cordova-plugin-wkwebview-engine
# 清理Cordova缓存与旧平台文件
cordova clean ios
rm -rf platforms/ios plugins package-lock.json node_modules
# 重新安装npm依赖
npm install

2. 重新添加iOS平台与WKWebView插件

重新指定iOS平台版本并安装插件,确保依赖匹配:

cordova platform add ios@6.0.0
cordova plugin add cordova-plugin-wkwebview-engine

3. 修复CDVURLProtocol.h缺失问题

Cordova iOS 6.x已移除CDVURLProtocol模块,这个错误是因为项目或第三方插件还在引用它:

  • 检查platforms/ios目录下的所有原生代码(.h/.m文件),删除所有#import <Cordova/CDVURLProtocol.h>的引用
  • 排查第三方插件,将依赖CDVURLProtocol的插件升级到兼容Cordova iOS 6.x的版本,直接移除不兼容的插件

4. 强制启用WKWebView作为默认WebView

在项目根目录的config.xml中添加配置,确保Cordova默认使用WKWebView:

<!-- 指定WKWebView为默认引擎 -->
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
<!-- 强制仅使用WKWebView -->
<preference name="WKWebViewOnly" value="true" />
<!-- 可选:添加WKWebView常用偏好设置 -->
<preference name="AllowBackForwardNavigationGestures" value="true" />
<preference name="AllowInlineMediaPlayback" value="true" />

5. 适配Xcode 14构建要求

打开platforms/ios下的Xcode项目,做以下调整:

  • 将项目Deployment Target设置为iOS 11.0或更高(Cordova iOS 6.x最低要求)
  • 在Build Settings中搜索Enable Bitcode,设置为No(部分插件不支持Bitcode)
  • 执行Product > Clean Build Folder清理Xcode缓存,再重新构建项目

6. 验证WKWebView是否生效

项目运行后,在调试控制台输入以下代码验证:

console.log(window.webkit); // 输出存在则说明当前为WKWebView

或者在原生代码中添加日志确认:

NSLog(@"当前WebView类型:%@", self.webView.class);
// 输出应为WKWebView而非UIWebView

内容的提问来源于stack exchange,提问作者FamIos Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 01:50:01