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

Capacitor项目iOS端WKWebView第三方Cookie写入失败解决方案问询

Capacitor iOS端WKWebView无法写入Cookie解决方案

你当前仅配置了hostname项,还需补充以下配置和操作:

  • 首先在capacitor.config.json(或capacitor.config.ts)的server配置中添加iosScheme字段,指定为https,避免默认自定义scheme导致Cookie同域校验失败:
"server": {
  "hostname": "subdomain.example.com",
  "iosScheme": "https"
}
  • 在iOS原生项目的AppDelegate中添加Cookie权限配置,开启WKWebView的Cookie接收策略:
    打开ios/App/App/AppDelegate.swift,在didFinishLaunchingWithOptions方法中加入以下代码:
import WebKit

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // 保留原有代码,新增以下配置
    let webConfig = WKWebViewConfiguration()
    webConfig.websiteDataStore.httpCookieStore = WKHTTPCookieStore()
    HTTPCookieStorage.shared.cookieAcceptPolicy = .always
    webConfig.preferences.setValue(true, forKey: "allowFileAccessFromFileURLs")
    // 保留原有return逻辑
    return true
}
  • 确认前端写入Cookie时的属性配置符合iOS端要求:
    • Cookie的Domain必须严格匹配你配置的subdomain.example.com
    • 必须指定Path=/
    • 不要设置SameSite=Strict,建议设置为SameSite=Lax或者不配置该属性
  • 跨域请求场景下额外补充配置:
    • 前端请求头开启credentials: include
    • 服务端响应头返回Access-Control-Allow-Credentials: true,且Access-Control-Allow-Origin不能设置为通配符*,必须对应你的实际域名
  • 所有配置修改完成后,必须完全清理Xcode构建缓存(快捷键Option+Command+Shift+K),卸载设备上已安装的旧版App后重新编译运行,避免缓存导致配置不生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 17:36:08