【发布时间】:2021-12-22 09:49:11
【问题描述】:
我们正在运行一个 Cordova 应用程序,除了 IOS 上的 GET 请求外,它运行良好。在这种情况下,会话 cookie 不会传输到服务器。通常,我们使用 POST 请求进行其余的 API 调用。例外是我们通过 GET 请求加载的图像。因此,加载图片时,服务器不会将授权用户识别为已登录。
在同一设备上的浏览器上运行 web 应用程序时,一切正常。此外,在安卓上也没有问题。我的猜测是由于不同的http方法,webview选择不使用相同的cookie。这可能与现已弃用的 cordova 白名单插件有关。
登录时正在服务器上生成 cookie。
Cordova/插件版本:
"cordova-ios": "^6.2.0",
"cordova-plugin-splashscreen": "^6.0.0",
"cordova-plugin-statusbar": "^2.4.3",
"cordova-plugin-vibration": "^3.1.1",
"cordova-plugin-wkwebview-engine": "^1.2.2",
"cordova-plugin-wkwebview-file-xhr": "^3.0.0",
"ios": "^0.0.1"
Cordova ios 偏好设置:
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="scheme" value="app" />
<preference name="hostname" value="localhost" />
<preference name="WKWebViewOnly" value="true" />
【问题讨论】: