【HarmonyOS】【JAVA UI】 鸿蒙 Webview怎么设置cookie和读取cookie
在大家开发中,可能会使用Webview去加载网页,需要将应用开发中使用到必要的cookie信息同步到HarmonyOS的webview,也有可能从HarmonyOS的webview中获取cookie信息,如下写一个demo作为参考,基础的webview学习,大家参考如下链接
文档中心
1、设置cookie
我们需要重写webAgent的接口,实现isNeedLoadUrl的方法中设置如下代码
ohos.agp.components.webengine.CookieStore mCookieStore = ohos.agp.components.webengine.CookieStore.getInstance();mCookieStore.setCookieEnable(true);mCookieStore.setCookie(url, "Domain="+"1111");mCookieStore.setCookie(url, "Path=/");mCookieStore.setCookie(url, "Value=00000");
2、读取cookie
我们需要重写webAgent的接口,实现onPageLoaded的方法中设置如下代码
ohos.agp.components.webengine.CookieStore mCookieStore = ohos.agp.components.webengine.CookieStore.getInstance();String cookiestr=mCookieStore.getCookie(url);HiLogUtils.PrintLog(cookiestr);
3、整体代码如下
XML 代码如下
Java 代码如下
package com.harmony.alliance.mydemo.slice;import com.harmony.alliance.mydemo.ResourceTable;import ohos.aafwk.ability.AbilitySlice;import ohos.aafwk.content.Intent;import ohos.agp.components.webengine.CookieStore;import ohos.agp.components.webengine.ResourceRequest;import ohos.agp.components.webengine.WebAgent;import ohos.agp.components.webengine.WebView;import ohos.media.image.PixelMap;public class WebviewAbilitySlice extends AbilitySlice { private WebView webView; @Override public void onStart(Intent intent) { super.onStart(intent); super.setUIContent(ResourceTable.Layout_ability_webview); webView = (WebView) findComponentById(ResourceTable.Id_webview); webView.getWebConfig().setJavaScriptPermit(true); webView.setWebAgent(new WebAgent() { @Override public void onLoadingPage(WebView webview, String url, PixelMap favicon) { super.onLoadingPage(webview, url, favicon); // 页面开始加载时自定义处理 ohos.agp.components.webengine.CookieStore mCookieStore = ohos.agp.components.webengine.CookieStore.getInstance(); mCookieStore.setCookieEnable(true); mCookieStore.setCookie(url, "Domain="+"luck"); mCookieStore.setCookie(url, "Path=/"); mCookieStore.setCookie(url, "Value=00000"); } @Override public void onPageLoaded(WebView webView, String url) { super.onPageLoaded(webView, url); CookieStore cookieStore = CookieStore.getInstance(); String cookiestr=cookieStore.getCookie(url); System.out.println("cookiestr=====>>"+cookiestr); } }); autoLogin(); } private void autoLogin() { Thread thread = new Thread(() -> { try { getUITaskDispatcher().asyncDispatch(() -> { showLoginedPage(); }); } catch (Exception exception) { exception.printStackTrace(); } }); thread.start(); } private void showLoginedPage() { try { String url = "https://www.baidu.com/"; webView.load(url); } catch (Exception e) { e.printStackTrace(); } } @Override public void onActive() { super.onActive(); } @Override public void onForeground(Intent intent) { super.onForeground(intent); }}
效果如下
更多相关学习资料: https://developer.huawei.com/consumer/cn/forum/topic/0202768505916320230?fid=0101591351254000314?ha_source=zzh |