升级到BlackBerry Dynamics SDK (v10.1)及更新版本后,某些特定cookie未设置。
注意:我们使用的是本地WKWebView并访问我们的服务器,它会尝试设置以下cookie。
问题#1:特定的HTTP cookie没有在WebView中自动设置。
从服务器的响应中接收到以下cookie:
1f6cf18f-2410-4756-8f7c-f2c18d2877ae=%7B%22state-version%22%3A%221%22%2C%22state-data%22%3A%22baV9DYCXeC01d295qcJX%2F3TjgXLgT4DQdQkkuhYnBBWkWsICTfElQxlmCrHBDI%2BK3kK7NlHFhmvv0xEd4NNGl4b7C7NMoMTLy2bikETGx7N2Izj4hvBUTSulI2riBHS0KP7Yn987Zu76ay%2FkeU7KBRAYORcSMV6KURNXYnvWOQ%2Bblvv4aNKD%2F9hINd2KYMlqqVv%2FL%2FhEirllZaPVLE4gV%2B%2BFpx%2FBWNmJbyAXDhFbszCRaxXh0hnVhMY6sCpBtI%2FiqvrNnGADTO0PTthrVXKe16%2B0JIjHVKUf7djyGlpwsR4Sjvbj3V8TUp0FuKJ9d4ruU9rrKc1syDCdwD3Sy3o%2Fmr2DoCE0AEawxOBleDctnJa9xejhSukg76EUQfXB6Lz3nSHEtkq2cTKf7n737mNPMzJRxBnfoykR%2FEk6gJ0%2Bf0wjsK%2F0FnzmgHD77hyR%2BMmipCo9zuBbuphIZ9CEDWQ5O458QV2KIoj%2FVKw%2FwBlTn2sm4ha%2BnBYT6SGkF18RZE3jAJtiBtjckl3mCFZ3z8JLi2p5rlewBDbJuyjB1Rn2hM6sDdHxa%2BhyVg0e2qpO12akwAHZa%2FdCE7mB9yptdtd86gjSbyfzGVKe5XviinQeYa8%3D%22%7D; Path=/path/of/the/cookie; Secure; HttpOnly; SameSite=None
- 我们注意到只有这个特定的cookie没有被设置,而其他HTTP cookie正在设置。
- 如果我们使用
[WKNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]
拦截WKWebView中的响应,然后使用[WKHTTPCookieStore setCookie]
设置cookie,它似乎可以工作。
问题#2:未设置XMLHTTPResponse中设置的cookie。
- 在' set - cookie '报头中收到的XMLHTTPResponses cookie未被设置。
- 如果我们通过在WKWebView中使用
[WKUserContentController addUserScript]
注入ajax拦截器脚本来拦截响应,然后使用[WKHTTPCookieStore setCookie]
设置cookie,似乎可以工作。
根据我们SDK团队的响应,SDK不支持处理与响应路径不同的cookie。如果响应来自/path1,并且包含/path2的cookie,则不会应用此类cookie。
假设这是你的情况-主响应的路径与cookie中指定的路径不同。例如,来自Ajax的响应来自www.google.com/another_path,但是cookie指定了Path=/Path/of/the/cookie;
建议解决方案:您可以尝试将cookie中的路径更改为"path=/;"。或者,尝试发送请求到www.google.com/path/of/the/cookie,如果你的服务器仍然返回这样的cookie响应,然后路径=/Path/的/the/cookie;
希望对你有帮助。