无法在Android模拟器上为10.0.2.2设置Cookie

时间:2020-03-20 13:31:16

标签: android react-native cookies android-emulator android-webview

我正在尝试在Oreo(https://developer.android.com/reference/android/webkit/CookieManager#setCookie(java.lang.String,%20java.lang.String,%20android.webkit.ValueCallback%3Cjava.lang.Boolean%3E)及更高版本的Webview上使用CookieManager设置cookie, 使用localhost:8080

从笔记本电脑(例如10.0.2.2:8080)上运行的本地服务器加载

众所周知,对于android模拟器,本地主机地址由10.0.2.2

引用

据我所知,一个人可以为10.0.2.2设置cookie

还有没有办法调试cookie设置失败的原因? 我正在通过Chrome检查器(chrome:// inspect)检查cookie是否已设置

这是用例(本机,但在后台使用常规的CookieManager):

import CookieManager from '@react-native-community/cookies';

// Set cookies from a response header
// This allows you to put the full string provided by a server's Set-Cookie 
// response header directly into the cookie store.
CookieManager.setFromResponse(
  'http://10.0.2.2:8080', 
  'user_session=abcdefg; path=/; expires=Thu, 1 Jan 2030 00:00:00 -0000; secure; HttpOnly')
    .then((res) => {
      // `res` will be true or false depending on success.
      console.log('CookieManager.setFromResponse =>', res);
    });

1 个答案:

答案 0 :(得分:0)

是否为域(例如“ localhost”或10.0.2.2)设置了cookie?即“ domain = localhost”。

如果是这样,请尝试完全删除域部分,看看是否可以解决未设置Cookie的问题。

除此之外,您还可以显示如何使用CookieManager设置cookie的代码吗?

编辑:

我相信,在使用localhost时,在Android版本2.2之后,无法在Webview中设置cookie或使用localstorage。这是由于存在安全限制,以防止其他任何应用访问数据。

查看以下相关问题/答案:

Android webview cookie returns null

How to enable cookie in webview for local js file?