使用Salesforce SDK 13.0.2+Cordova iOS7.1.1时CDVWKWebViewFileXhr找不到
解决方案:Salesforce SDK 13.0.2 + Cordova iOS 7.1.1 下 CDVWKWebViewFileXhr 插件找不到问题
问题根源
Salesforce SDK 13.x版本对Cordova的WKWebView初始化做了定制化修改,可能覆盖了默认的插件注册流程;同时Cordova iOS 7.x的插件注册机制与旧版本存在差异,导致cordova-plugin-wkwebview-file-xhr的原生类CDVWKWebViewFileXhr未被CDVPluginManager正确识别。
修复步骤
1. 验证并修复插件注册配置
- 打开项目根目录下的
www/cordova_plugins.js,确认是否包含以下WKWebViewFileXhr的注册条目,若缺失则手动添加:{ "id": "cordova-plugin-wkwebview-file-xhr.WKWebViewFileXhr", "file": "plugins/cordova-plugin-wkwebview-file-xhr/www/WKWebViewFileXhr.js", "pluginId": "cordova-plugin-wkwebview-file-xhr", "clobbers": [ "XMLHttpRequest" ] }, - 检查
platforms/ios/<你的项目名>/config.xml,确保存在原生插件的映射配置:<feature name="WKWebViewFileXhr"> <param name="ios-package" value="CDVWKWebViewFileXhr" /> </feature>
2. 手动注册插件到CDVPluginManager
Salesforce SDK的自定义WKWebView初始化可能跳过了插件自动注册,需在原生代码中手动补充:
- 打开Xcode项目中的
AppDelegate.m或Salesforce初始化相关文件,在SDK初始化完成后添加以下代码:// 确保在viewController和pluginManager已初始化后执行 CDVPluginManager* pluginManager = [self.viewController pluginManager]; [pluginManager registerPlugin:@"CDVWKWebViewFileXhr" withClassName:@"CDVWKWebViewFileXhr"];
3. 更新插件或适配版本
旧版插件可能不兼容Cordova iOS 7.x,尝试更新插件至最新兼容版本:
cordova plugin remove cordova-plugin-wkwebview-file-xhr cordova plugin add cordova-plugin-wkwebview-file-xhr@latest
4. 清理并重新构建项目
缓存或残留的构建文件可能导致注册异常,执行以下命令彻底清理后重建:
# 清理Cordova缓存和iOS平台文件 cordova clean ios rm -rf platforms/ios rm -rf plugins rm package-lock.json # 重新安装依赖和平台、插件 npm install cordova platform add ios@7.1.1 cordova plugin add cordova-plugin-wkwebview-file-xhr # 构建并运行 cordova build ios cordova run ios
5. 检查Xcode项目中的插件文件
打开Xcode项目,确认Plugins/cordova-plugin-wkwebview-file-xhr目录下存在CDVWKWebViewFileXhr.h和CDVWKWebViewFileXhr.m文件,若缺失则重新添加插件或手动复制插件的原生文件到该目录。
内容的提问来源于stack exchange,提问作者Shweta Lodhe
相关产品推荐
相关产品推荐

