HarmonyOS NEXT开发 Cookie及数据存储

摘要

Cookie是一种存储在用户计算机上的小文本文件,用于在用户访问网站时存储和提取信息。它由网站服务器发送到用户的浏览器,并存储在用户的计算机上。每当用户访问该网站时,浏览器将发送该Cookie回服务器,以用于识别用户和存储用户的首选项和其他信息。

一、Cookie及数据存储

1.Cookie管理

TypeScript 复制代码
import web_webview from '@ohos.web.webview';

@Entry
@Component
struct WebComponent {
  controller: web_webview.WebviewController = new web_webview.WebviewController();
  @State message: string = 'Hello World';
  build() {
    Column() {
      Button('setCookie')
        .onClick(() => {
          try {
            web_webview.WebCookieManager.setCookie('https://www.example.com', 'value=test');
          } catch (error) {
            console.error(`ErrorCode: ${error.code},  Message: ${error.message}`);
          }
        })
      Button('getCookie')
        .onClick(() => {
          try {
            let Cookie=web_webview.WebCookieManager.getCookie('https://www.example.com');
            this.message=Cookie.toString()
          } catch (error) {
            console.error(`ErrorCode: ${error.code},  Message: ${error.message}`);
          }
        })
      Text(this.message)
      Web({ src: 'www.example.com', controller: this.controller })
    }
  }
}

2.缓存与存储管理

2.1 Cache

网页缓存是指浏览器或代理服务器在第一次请求某个特定网页时,将其内容存储在本地的一种机制。当再次请求相同的网页时,浏览器或代理服务器会检查本地缓存是否存在该网页的副本,并从缓存中加载网页内容,而不是重新从服务器下载。这样可以提高网页加载速度和减轻服务器的负载。

TypeScript 复制代码
import web_webview from '@ohos.web.webview';

@Entry
@Component
struct WebComponent {
  @State mode: CacheMode = CacheMode.None;
  controller: web_webview.WebviewController = new web_webview.WebviewController();
  build() {
    Column() {
      Button('removeCache')
        .onClick(() => {
          try {
            // 设置为true时同时清除rom和ram中的缓存,设置为false时只清除ram中的缓存
            this.controller.removeCache(true);
          } catch (error) {
            console.error(`ErrorCode: ${error.code},  Message: ${error.message}`);
          }
        })
      Web({ src: 'www.example.com', controller: this.controller })
        .cacheMode(this.mode)
    }
  }
}
2.2 Dom Storage

Dom Storage是一种在Web浏览器中用于存储和检索数据的机制。它包含两种不同的存储类型:Session Storage和Local Storage。

Session Storage用于临时存储数据,其生命周期与浏览器会话相关联。当用户关闭浏览器标签或窗口时,Session Storage中的数据将被释放。Session Storage适用于在网页会话期间保存临时数据。

Local Storage用于持久化存储数据,即数据会保留在客户端,即使用户关闭浏览器也不会被删除。Local Storage的数据存储在应用目录下,可以在客户端之间共享。Local Storage适用于需要长期保存数据的场景。

无论是Session Storage还是Local Storage,数据都以Key-Value的形式存储。可以通过指定键来存储和检索数据。通常在需要在客户端存储数据的网页中使用Dom Storage。

使用Dom Storage,开发人员可以轻松地在浏览器中存储和获取数据,而无需使用服务器端的数据库或其他存储机制。这使得网页能够在离线状态下运行,并且可以更快地加载和呈现数据。

TypeScript 复制代码
import web_webview from '@ohos.web.webview';

@Entry
@Component
struct WebComponent {
  controller: web_webview.WebviewController = new web_webview.WebviewController();
  build() {
    Column() {
      Web({ src: 'www.example.com', controller: this.controller })
        .domStorageAccess(true)
    }
  }
}
相关推荐
__Benco2 小时前
OpenHarmony平台驱动开发(十七),UART
人工智能·驱动开发·harmonyos
落叶挽歌12 小时前
鸿蒙ArkUI体验:Hexo博客客户端开发心得
华为·harmonyos
特立独行的猫a12 小时前
uni-app 开发HarmonyOS的鸿蒙影视项目分享:从实战案例到开源后台
uni-app·开源·harmonyos·鸿蒙·影视
交叉编译之王 hahaha13 小时前
RK3568-鸿蒙5.1镜像烧录与调试
华为·harmonyos
Raink老师14 小时前
鸿蒙页面布局入门
华为·harmonyos·鸿蒙·移动端布局
hbcui198415 小时前
uni-app x正式支持鸿蒙原生应用开发
uni-app·harmonyos·uni-app x
lqj_本人15 小时前
鸿蒙OS&UniApp制作支持多图上传的图片选择器:打造高性能移动端上传体验#三方框架 #Uniapp
华为·uni-app·harmonyos
晚秋大魔王15 小时前
OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——wget
java·linux·运维·开发语言·华为·harmonyos
周胡杰1 天前
组件导航 (HMRouter)+flutter项目搭建-混合开发+分栏效果
前端·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
bestadc1 天前
鸿蒙 Core File Kit(文件基础服务)之简单使用文件
harmonyos