W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Cookie是網(wǎng)絡(luò)訪問(wèn)過(guò)程中,由服務(wù)端發(fā)送給客戶端的一小段數(shù)據(jù)??蛻舳丝沙钟性摂?shù)據(jù),并在后續(xù)訪問(wèn)該服務(wù)端時(shí),方便服務(wù)端快速對(duì)客戶端身份、狀態(tài)等進(jìn)行識(shí)別。
Web組件提供了WebCookieManager類(lèi),用于管理Web組件的Cookie信息。Cookie信息保存在應(yīng)用沙箱路徑下/proc/{pid}/root/data/storage/el2/base/cache/web/Cookiesd的文件中。
下面以setCookie()接口舉例,為“www.example.com”設(shè)置單個(gè)Cookie的值“value=test”。其他Cookie的相關(guān)功能及使用,請(qǐng)參考WebCookieManager()接口文檔。
- // xxx.ets
- import web_webview from '@ohos.web.webview';
- @Entry
- @Component
- struct WebComponent {
- controller: web_webview.WebviewController = new web_webview.WebviewController();
- 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}`);
- }
- })
- Web({ src: 'www.example.com', controller: this.controller })
- }
- }
- }
在訪問(wèn)網(wǎng)站時(shí),網(wǎng)絡(luò)資源請(qǐng)求是相對(duì)比較耗時(shí)的。開(kāi)發(fā)者可以通過(guò)Cache、Dom Storage等手段將資源保持至本地,以提升訪問(wèn)同一網(wǎng)站的速度。
使用cacheMode()配置頁(yè)面資源的緩存模式,Web組件為開(kāi)發(fā)者提供四種緩存模式,分別為:
在下面的示例中,選用緩存設(shè)置為None模式。
- // xxx.ets
- 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() {
- Web({ src: 'www.example.com', controller: this.controller })
- .cacheMode(this.mode)
- }
- }
- }
- // xxx.ets
- 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 {
- // 設(shè)置為true時(shí)同時(shí)清除rom和ram中的緩存,設(shè)置為false時(shí)只清除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)
- }
- }
- }
Dom Storage包含了Session Storage和Local Storage兩類(lèi)。前者為臨時(shí)數(shù)據(jù),其存儲(chǔ)與釋放跟隨會(huì)話生命周期;后者為可持久化數(shù)據(jù),落盤(pán)在應(yīng)用目錄下。兩者的數(shù)據(jù)均通過(guò)Key-Value的形式存儲(chǔ),通常在訪問(wèn)需要客戶端存儲(chǔ)的頁(yè)面時(shí)使用。開(kāi)發(fā)者可以通過(guò)Web組件的屬性接口domStorageAccess()進(jìn)行使能配置,示例如下:
- // xxx.ets
- 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)
- }
- }
- }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: