HarmonyOS鸿蒙Next中Web管理Cookie和数据存储demo

HarmonyOS鸿蒙Next中Web管理Cookie和数据存储demo Web管理Cookie和数据存储demo(Cookie管理/缓存Cache存储管理/Dom Storage)

3 回复

关于管理Cookie及数据存储,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-cookie-and-data-storage-mgmt

以下demo,仅供参考:

import web_webview from '@ohos.web.webview';
import business_error from '@ohos.base';

@Entry
@Component
struct CookiePage {
  controller: web_webview.WebviewController = new web_webview.WebviewController();
  @State mode: CacheMode = CacheMode.None;

  build() {
    Column() {
      Button('同步Cookie')
        .onClick(() => {
          try {
            //设置指定url对应cookie
            web_webview.WebCookieManager.configCookieSync('https://m.baidu.com', 'value=test');
            //获取指定url对应cookie的值
            web_webview.WebCookieManager.fetchCookie('https://m.baidu.com', (err, value) => {
              if (err) {
                console.log(`${err}`)
              }
              console.log(value);
            })
          } catch (error) {
            let e: business_error.BusinessError = error as business_error.BusinessError;
            console.error(`ErrorCode: ${e.code}, Message: ${e.message}`);
          }
        })

      Button('保存')
        .onClick(() => {
          try {
            //将当前存在内存中的cookie异步保存到磁盘中
            web_webview.WebCookieManager.saveCookieAsync((error) => {
              if (error) {
                let e: business_error.BusinessError = error as business_error.BusinessError;
                console.error(`ErrorCode: ${e.code}, Message: ${e.message}`);
              }
            })
          } catch (error) {
            let e: business_error.BusinessError = error as business_error.BusinessError;
            console.error(`ErrorCode: ${e.code}, Message: ${e.message}`);
          }
        })

      Button('是否存在')
        .onClick(() => {
          //判断是否存在cookie
          let result = web_webview.WebCookieManager.existCookie();
          console.log("result: " + result);
        })

      Button('清除')
        .onClick(() => {
          //清楚所有的cookie
          web_webview.WebCookieManager.clearAllCookiesSync();
        })
    }
  }
}

更多关于HarmonyOS鸿蒙Next中Web管理Cookie和数据存储demo的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,Web管理Cookie和数据存储可以通过Web组件和相关API实现。使用Web组件加载网页时,系统会自动管理Cookie。可以通过WebCookieManager类来手动管理Cookie,如添加、删除或查询Cookie。数据存储方面,可以使用WebStorage接口管理localStorage和sessionStorage。具体操作包括设置、获取和删除键值对。通过WebSettings可以配置Web组件的存储行为,如启用或禁用JavaScript、设置缓存模式等。开发者可以根据需求在应用中集成这些功能,实现Web页面的Cookie和数据存储管理。

在HarmonyOS鸿蒙Next中,可以通过WebView组件来管理Cookie和数据存储。以下是一个简单的Demo示例:

  1. 启用Cookie:

    WebView webView = new WebView(context);
    CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);
    cookieManager.setAcceptThirdPartyCookies(webView, true);
    
  2. 设置和获取Cookie:

    cookieManager.setCookie("https://example.com", "name=value");
    String cookie = cookieManager.getCookie("https://example.com");
    
  3. 数据存储:

    WebStorage webStorage = WebStorage.getInstance();
    webStorage.setStorageDatabasePath(context.getFilesDir().getPath());
    

通过以上代码,你可以在鸿蒙Next中实现基本的Cookie管理和Web数据存储功能。

回到顶部