ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【HarmonyOS】【JAVA UI】 鸿蒙 Webview怎么设置cookie和读取cookie

2022-07-08 11:06:46  阅读:260  来源: 互联网

标签:JAVA url HarmonyOS cookie webengine components ohos mCookieStore agp


在大家开发中,可能会使用Webview去加载网页,需要将应用开发中使用到必要的cookie信息同步到HarmonyOS的webview,也有可能从HarmonyOS的webview中获取cookie信息,如下写一个demo作为参考,基础的webview学习,大家参考如下链接 

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-java-component-webview-0000001092715158

image.png​​

 

1、设置cookie

我们需要重写webAgent的接口,实现isNeedLoadUrl的方法中设置如下代码

ohos.agp.components.webengine.CookieStore mCookieStore = ohos.agp.components.webengine.CookieStore.getInstance();
mCookieStore.setCookieEnable(<span class="hljs-literal">true</span>);
mCookieStore.setCookie(url, <span class="hljs-string">"Domain="</span>+<span class="hljs-string">"1111"</span>);
mCookieStore.setCookie(url, <span class="hljs-string">"Path=/"</span>);
mCookieStore.setCookie(url, <span class="hljs-string">"Value=00000"</span>);

 

2、读取cookie

我们需要重写webAgent的接口,实现onPageLoaded的方法中设置如下代码

ohos.agp.components.webengine.CookieStore mCookieStore = ohos.agp.components.webengine.CookieStore.getInstance();
<span class="hljs-built_in">String</span> cookiestr=mCookieStore.getCookie(url);
HiLogUtils.PrintLog(cookiestr);

 

3、整体代码如下

XML 代码如下

<?xml version="1.0" encoding="utf-8"?>

<DirectionalLayout

    xmlns:ohos="http://schemas.huawei.com/res/ohos"

    ohos:height="match_parent"

    ohos:width="match_parent"

    ohos:orientation="vertical">

    <ohos.agp.components.webengine.WebView

        ohos:id="$+id:webview"

        ohos:height="0fp"

        ohos:weight="1"

        ohos:width="match_parent">

    </ohos.agp.components.webengine.WebView>

</DirectionalLayout>

 

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 onl oadingPage(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);

    }

}

 

效果如下

image.png​​

标签:JAVA,url,HarmonyOS,cookie,webengine,components,ohos,mCookieStore,agp
来源: https://www.cnblogs.com/developer-huawei/p/16457517.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有