我在 webView 中打开了一个单点登录站点。用户登录后,我需要获取一个 cookie 来从 API 请求一个令牌,并在应用程序中使用它来处理所有其他请求。这一切在 Android 上都可以正常工作,但是当我请求令牌时,iOS 没有 cookie。WebView 配置为使用共享 cookie 存储:
<WebView
source={{ uri: loginUrl }}
onMessage={handleSsoLogin}
injectedJavaScriptBeforeContentLoaded={JS_INTERFACE}
sharedCookiesEnabled={true}
/>
如果我使用 devTools 检查 webView,我可以看到 cookie。另外,如果我再次访问 SSO 站点,我已经登录了它。因此,cookie 被 webView 持久化和使用。它们只是不被使用fetch
并且 CookieManager 不访问它们:
const cookies = await CookieManager.get(url);
console.log({ cookies });
...
{"cookies": {}}
那么,问题是,我怎样才能从 webView 中获取这些 cookie?