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