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

iOS15下如何通过Cordova为WKWebView禁用NSURLSession WebSocket?

Cordova WKWebView 适配iOS15 SignalR WebSocket连接问题解决方案

针对iOS15中Cordova打包的SignalR Web应用无法建立WebSocket连接的问题,可通过以下两种方式让WKWebView禁用NSURLSession WebSocket,和Safari中禁用该实验性功能的效果一致:

方法一:通过Cordova配置文件修改

  • 确保已安装或更新cordova-plugin-wkwebview-engine插件至最新版本
  • 打开项目根目录的config.xml,添加如下偏好设置:
<preference name="WKWebViewPreferences" value="{'webSocketEnabled':false}" />

该配置会强制WKWebView使用传统WebSocket实现,而非iOS15默认的NSURLSession WebSocket。

方法二:修改原生iOS代码(配置不生效时使用)

  • 打开Cordova生成的Xcode项目,找到CDVWKWebViewEngine.m文件
  • 在createConfiguration方法中,添加一行代码禁用NSURLSession WebSocket:
configuration.webSocketEnabled = NO;
  • 若使用较新版本的Cordova,可能需要在CDVWKWebViewEngineConfiguration.m文件中设置该属性

后续操作

修改完成后,重新编译iOS项目:

cordova build ios

编译完成后测试应用,即可恢复WebSocket连接功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:10:40