求助鸿蒙组件,webview setCookie能取到数值,但是每次结束app进程,cookie数值就不见了。
做一个webview组件,思路如下:
用户首次登陆,cookie为空,webivew.load(url),然后通过onPageLoaded获得cookie,再setCookie,下次用户二次登陆可以直接登陆而不用输入账号密码。
代码如下:
url1 = "xxxxxxxx";
webView = (WebView) findComponentById(ResourceTable.Id_webview);
webView.getWebConfig().setJavaScriptPermit(true);
cookieStore = CookieStore.getInstance();
cookieStore.setCookieEnable(true);
cookieStore.setCrossDomainCookieEnable(webView, true);
if (cookieStore.getCookie(url1) == null) {
webView.load(url1);
} else {
String[] cookies = cookieStore.getCookie(url1).split(";");
for (int i = 0; i < cookies.length; i++) {
cookieStore.setCookie(url1,cookies[i]);
}
cookieStore.persist();
webView.load(url1);
}
webView.setWebAgent(new WebAgent() {
@Override
public boolean isNeedLoadUrl(WebView webView, ResourceRequest request) {
return true;
}
@Override
public void onPageLoaded(WebView webView, String url) {
super.onPageLoaded(webView, url);
cookieStore.setCookieEnable(true);
cookieStore.setCrossDomainCookieEnable(webView, true);
cookieStore.getCookie(url1);
cookieStore.persist();
}
});
在setCookie中能看到key=value值,但是app进程一结束,cookie就失效。此问题困扰我好几天,望各位大神不吝赐教!谢谢!
你读取加载url中的cookie 他是实时的 不是存在本地的,所以你第二次打开的时候回cookie就失效了
第一步实现登录功能,然后返回cookie相关参数,在然后将cookie保存在本地中
第二步在加载时候(isNeedLoadUrl)将cookie 拼接传给后台,
设置获取cookie代码如下
答复引用于:华为开发者联盟开发者支持团队
我之前也遇到同样的问题,最后是取出cookie保存数据库,然后重启app时从数据库提取,来实现的。按理说是有保存cookie的api的但是没有效果,不知道现在是不是好使了。