我正在尝试在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);
});
答案 0 :(得分:0)
是否为域(例如“ localhost”或10.0.2.2)设置了cookie?即“ domain = localhost”。
如果是这样,请尝试完全删除域部分,看看是否可以解决未设置Cookie的问题。
除此之外,您还可以显示如何使用CookieManager设置cookie的代码吗?
编辑:
我相信,在使用localhost时,在Android版本2.2之后,无法在Webview中设置cookie或使用localstorage。这是由于存在安全限制,以防止其他任何应用访问数据。
查看以下相关问题/答案: