【发布时间】:2020-07-30 07:59:32
【问题描述】:
我在 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?
【问题讨论】:
标签: react-native react-native-ios react-native-webview react-native-cookies