精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HarmonyOS開發(fā)案例:【W(wǎng)eb組件實戰(zhàn)】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-28 17:30 ? 次閱讀

介紹

使用ArkTS語言實現(xiàn)一個簡單的免登錄過程,向大家介紹基本的cookie管理操作。主要包含以下功能:

  1. 獲取指定url對應(yīng)的cookie的值。
  2. 設(shè)置cookie。
  3. 清除所有cookie。
  4. 免登錄訪問賬戶中心

原理說明

本應(yīng)用旨在說明Web組件中cookie的管理操作。結(jié)合應(yīng)用彈框和免登錄兩種方式進(jìn)行講解。

  • 應(yīng)用彈框
    若用戶已通過“設(shè)置cookie”完成cookie寫操作,點擊應(yīng)用首頁的“獲取cookie”按鈕,則應(yīng)用彈窗中會帶有“info=測試cookie寫入”的信息。若用戶未進(jìn)行寫操作,則彈窗信中無對應(yīng)信息。
  • 免登錄
    若用戶在應(yīng)用首頁完成登錄操作,則點擊“驗證cookies”按鈕,界面會跳轉(zhuǎn)至“關(guān)于”界面;若用戶此前未完成登錄操作,則會跳轉(zhuǎn)至登錄界面。這里借助真實的登錄過程,體現(xiàn)了Web組件自動存儲登錄后的會話cookie,并在整個應(yīng)用中生效的能力。

流程如圖所示:

相關(guān)概念

  • [Web]:提供網(wǎng)頁顯示能力的組件。
  • [WebCookie]:WebCookie可以控制Web組件中的cookie的各種行為,其中每個應(yīng)用中的所有Web組件共享一個WebCookie。通過controller方法中的getCookieManager方法可以獲取WebCookie對象,進(jìn)行后續(xù)的cookie管理操作。

相關(guān)權(quán)限

本篇Codelab使用的是在線網(wǎng)頁,需添加網(wǎng)絡(luò)權(quán)限:ohos.permission.INTERNET。在配置文件module.json5中添加對應(yīng)信息:

{
  "module": {
    "name": "entry",
    ...
    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
  }
}

環(huán)境搭建

軟件要求

  • [DevEco Studio]版本:DevEco Studio 3.1 Release。
  • OpenHarmony SDK版本:API version 9。

硬件要求

  • 開發(fā)板類型:[潤和RK3568開發(fā)板]。
  • OpenHarmony系統(tǒng):3.2 Release。

環(huán)境搭建

完成本篇Codelab我們首先要完成開發(fā)環(huán)境的搭建,本示例以RK3568開發(fā)板為例,參照以下步驟進(jìn)行:

  1. [獲取OpenHarmony系統(tǒng)版本]:標(biāo)準(zhǔn)系統(tǒng)解決方案(二進(jìn)制)。以3.2 Release版本為例:
  2. 搭建燒錄環(huán)境。
    1. [完成DevEco Device Tool的安裝]
    2. [完成RK3568開發(fā)板的燒錄]
  3. 搭建開發(fā)環(huán)境。
    1. 開始前請參考[工具準(zhǔn)備],完成DevEco Studio的安裝和開發(fā)環(huán)境配置。
    2. 開發(fā)環(huán)境配置完成后,請參考[使用工程向?qū)創(chuàng)建工程(模板選擇“Empty Ability”)。
    3. 工程創(chuàng)建完成后,選擇使用[真機(jī)進(jìn)行調(diào)測]。
    4. 鴻蒙開發(fā)指導(dǎo)文檔:[qr23.cn/FBD4cY]

代碼結(jié)構(gòu)解讀

本篇Codelab只對核心代碼進(jìn)行講解,完整代碼可以直接從gitee獲取。

├──entry/src/main/ets               // 代碼區(qū)
│  ├──common                         
│  │  ├──constants                   
│  │  │  └──CommonConstant.ets      // 常量類
│  │  └──utils                       
│  │     ├──DialogUtil.ets          // 彈框工具類 
│  │     └──Logger.ets              // 日志工具類
│  ├──entryability                    
│  │  └──EntryAbility.ts            // 程序入口類
│  ├──pages                          
│  │  ├──Verify.ets                 // 免登錄驗證界面
│  │  └──WebIndex.ets               // 應(yīng)用首頁
│  └──view                                
│     └──LinkButton.ets             // 鏈接按鈕組件
└──entry/src/main/resources         // 應(yīng)用資源目錄

`HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789v直接拿`

搜狗高速瀏覽器截圖20240326151547.png

實現(xiàn)步驟

應(yīng)用首頁

首次打開應(yīng)用時,應(yīng)用首頁的Web組件內(nèi)呈現(xiàn)的是登錄界面。用戶完成登錄操作后,會跳轉(zhuǎn)至賬號中心界面。在用戶不點擊“刪除cookies”按鈕的情況下,用戶關(guān)閉并再次打開應(yīng)用,首頁仍會跳轉(zhuǎn)至賬號中心界面。Web組件會自動存儲所加載界面的cookie信息,包括登錄的cookie信息。用戶可以通過點擊“刪除cookies”按鈕,清除所有cookie信息。首頁呈現(xiàn)效果如圖:

首頁布局簡單,由應(yīng)用標(biāo)題“Web組件”、內(nèi)部標(biāo)題“Web組件內(nèi)”、中間加載的網(wǎng)頁和底部一排按鈕組成。分別對應(yīng)兩個Text組件、一個Web組件以及一個Row容器組件。Row容器組件內(nèi)包含四個鏈接按鈕,為LinkButton自定義組件。

// WebIndex.ets
Column() {
  Text($r('app.string.navigator_name'))
    ...

  Text($r('app.string.title_name'))
    ...

  Web({
    src: CommonConstants.USER_CENTER_URL,
    controller: this.controller
  })
    ...

  Row() {
    LinkButton({ buttonType: CookieOperation.GET_COOKIE, isNeedDivider: true })
    LinkButton({ buttonType: CookieOperation.SET_COOKIE, isNeedDivider: true })
    LinkButton({ buttonType: CookieOperation.DELETE_COOKIE, isNeedDivider: true })
    LinkButton({ buttonType: CookieOperation.VERIFY_COOKIE, isNeedDivider: false })
  }
  ...
}
...

自定義組件LinkButton由Text組件和Divider分隔器組件組成。最后一個按鈕沒有分隔器,通過isNeedDivider標(biāo)識符判斷是否需要添加Divider分隔器組件。

// LinkButton.ets
Row() {
  Text(this.buttonType)
    ...

  if (this.isNeedDivider) {
    Divider()
      ...
  }
}

每個按鈕被點擊時,都是調(diào)用operationMethod函數(shù)。函數(shù)根據(jù)不同操作,執(zhí)行不同的代碼內(nèi)容。包括cookie的讀、寫和刪除操作,以及頁面跳轉(zhuǎn)操作。

// LinkButton.ets
operationMethod() {
  switch (this.buttonType) {
    case CookieOperation.GET_COOKIE:
      try {
        let originCookie = web_webview.WebCookieManager.getCookie(CommonConstants.USER_CENTER_URL);
        showDialog(originCookie);
      } catch (error) {
        showDialog(`ErrorCode: ${error.code},  Message: ${error.message}`);
      }
      break;
    case CookieOperation.SET_COOKIE:
      try {
        web_webview.WebCookieManager.setCookie(CommonConstants.USER_ABOUT_URL, 'info=測試cookie寫入');
        showDialog($r('app.string.write_success'));
      } catch (error) {
        showDialog(`ErrorCode: ${error.code},  Message: ${error.message}`);
      }
      break;
    case CookieOperation.DELETE_COOKIE:
      web_webview.WebCookieManager.deleteEntireCookie();
      let deleteMessage = $r('app.string.delete_success');
      showDialog(deleteMessage);
      break;
    case CookieOperation.VERIFY_COOKIE:
      router.pushUrl({
        url: CommonConstants.PAGE_VERIFY
      }).catch((err: Error) = > {
        Logger.error('[LinkButton] push url fail: ' + JSON.stringify(err));
      });
      break;
    default:
      break;
  }
}

免登錄驗證頁

當(dāng)用戶在應(yīng)用內(nèi)已完成登錄操作,在應(yīng)用的其他位置使用Web組件訪問需要相同授權(quán)的頁面時,可免去多余的登錄操作。一個應(yīng)用中的所有Web組件共享一個WebCookie,因此一個應(yīng)用中Web組件存儲的cookie信息,也是可以共享的。界面呈現(xiàn)效果如圖:

該頁面布局同樣簡單,由應(yīng)用導(dǎo)航標(biāo)題“Web組件”、內(nèi)部標(biāo)題“Web組件內(nèi)”、加載的網(wǎng)頁組成。分別對應(yīng)一個Navigator導(dǎo)航組件、一個Text組件和一個Web組件。Navigator導(dǎo)航組件類型設(shè)置為返回(NavigationType.Back),內(nèi)容由返回圖標(biāo)和應(yīng)用標(biāo)題組成,呈水平排列展示。

// Verify.ets
Column() {
  Navigator({ target: CommonConstants.PAGE_INDEX, type: NavigationType.Back }) {
    Row() {
      Image($r('app.media.ic_back'))
        ...

      Text($r('app.string.navigator_name'))
        ...
    }
    ...
  }
  ...

  Text($r('app.string.title_name'))
    ...

  Web({
    src: CommonConstants.USER_ABOUT_URL,
    controller: this.controller
  })
    ...
}
...

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Cookie
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    10401
  • WEB組件
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    688
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2321

    瀏覽量

    42749
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1967

    瀏覽量

    30035
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3665

    瀏覽量

    16161
收藏 人收藏

    評論

    相關(guān)推薦

    HarmonyOS開發(fā)案例:【Web組件實現(xiàn)抽獎】

    基于ArkTS的聲明式開發(fā)范式的樣例,主要介紹了Web組件如何加載本地和云端H5小程序。
    的頭像 發(fā)表于 05-09 18:31 ?1331次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【<b class='flag-5'>Web</b><b class='flag-5'>組件</b>實現(xiàn)抽獎】

    HarmonyOS開發(fā)案例:【基礎(chǔ)組件Slider的使用】

    學(xué)習(xí)如何使用聲明式UI編程框架的基礎(chǔ)組件。本篇Codelab將會使用Image組件、Slider組件、Text組件共同實現(xiàn)一個可調(diào)節(jié)的風(fēng)車動畫
    的頭像 發(fā)表于 05-10 16:01 ?647次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【基礎(chǔ)<b class='flag-5'>組件</b>Slider的使用】

    HarmonyOS開發(fā)案例:【常用組件與布局】

    HarmonyOS ArkUI提供了豐富多樣的UI組件,您可以使用這些組件輕松地編寫出更加豐富、漂亮的界面。
    的頭像 發(fā)表于 05-09 18:20 ?1173次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【常用<b class='flag-5'>組件</b>與布局】

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-Web組件開發(fā)體驗

    ;) }}}*附件:HarmonyOSOpenHarmony應(yīng)用開發(fā)-Web組件開發(fā)體驗.docx示例效果:參
    發(fā)表于 12-12 15:14

    4天帶你上手HarmonyOS ArkUI開發(fā)——《HarmonyOS ArkUI入門訓(xùn)練營之健康生活實戰(zhàn)

    HarmonyOS ArkUI入門訓(xùn)練營之健康飲食應(yīng)用》是面向入門開發(fā)者打造的實戰(zhàn)課程系列。特邀華為終端BG高級開發(fā)工程師作為本次訓(xùn)練營講師,以健康飲食為例,開展技術(shù)教學(xué)及
    發(fā)表于 01-05 11:49

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-類Web開發(fā)范式

    邏輯處理。UI組件與數(shù)據(jù)之間通過單向數(shù)據(jù)綁定的方式建立關(guān)聯(lián),當(dāng)數(shù)據(jù)發(fā)生變化時,UI界面自動觸發(fā)更新。此種開發(fā)方式,更接近Web前端開發(fā)者的使用習(xí)慣,快速將已有的
    發(fā)表于 01-18 19:15

    HarmonyOS—使用Web組件加載頁面

    ??ohos.permission.INTERNET??網(wǎng)絡(luò)訪問權(quán)限。 加載網(wǎng)絡(luò)頁面 開發(fā)者可以在Web組件創(chuàng)建的時候指定默認(rèn)加載的網(wǎng)絡(luò)頁面 。在默認(rèn)頁面加載完成后,如果開發(fā)者需要變更
    發(fā)表于 08-31 17:51

    HarmonyOS 應(yīng)用開發(fā) Web 組件基本屬性應(yīng)用和事件

    一、Web組件概述 Web組件用于在應(yīng)用程序中顯示Web頁面內(nèi)容,為開發(fā)者提供頁面加載、頁面交互
    發(fā)表于 09-15 15:28

    《labview入門與實戰(zhàn)開發(fā)》經(jīng)典案例

    labview入門與實戰(zhàn)開發(fā)案例100例書中的案例資料供大家學(xué)習(xí)
    發(fā)表于 01-11 18:10 ?176次下載

    HarmonyOS測試技術(shù)與實戰(zhàn)-DECC測試服務(wù)

    HDC 2021華為開發(fā)HarmonyOS測試技術(shù)與實戰(zhàn)-DECC測試服務(wù)
    的頭像 發(fā)表于 10-23 14:40 ?1499次閱讀
    <b class='flag-5'>HarmonyOS</b>測試技術(shù)與<b class='flag-5'>實戰(zhàn)</b>-DECC測試服務(wù)

    HarmonyOS測試技術(shù)與實戰(zhàn)-HarmonyOS分布式應(yīng)用特征與挑戰(zhàn)

     HDC 2021華為開發(fā)者大會HarmonyOS測試技術(shù)與實戰(zhàn)-HarmonyOS分布式應(yīng)用特征與挑戰(zhàn)
    的頭像 發(fā)表于 10-23 14:41 ?1658次閱讀
    <b class='flag-5'>HarmonyOS</b>測試技術(shù)與<b class='flag-5'>實戰(zhàn)</b>-<b class='flag-5'>HarmonyOS</b>分布式應(yīng)用特征與挑戰(zhàn)

    HarmonyOS測試技術(shù)與實戰(zhàn)-UX測試服務(wù)

    HDC 2021華為開發(fā)者大會HarmonyOS測試技術(shù)與實戰(zhàn)-UX測試服務(wù)
    的頭像 發(fā)表于 10-23 15:00 ?1177次閱讀
    <b class='flag-5'>HarmonyOS</b>測試技術(shù)與<b class='flag-5'>實戰(zhàn)</b>-UX測試服務(wù)

    HarmonyOS測試技術(shù)與實戰(zhàn)-華為ArkUI開發(fā)框架和場景測試

    HDC 2021華為開發(fā)者大會HarmonyOS測試技術(shù)與實戰(zhàn)-華為ArkUI開發(fā)框架和場景測試
    的頭像 發(fā)表于 10-23 15:16 ?1872次閱讀
    <b class='flag-5'>HarmonyOS</b>測試技術(shù)與<b class='flag-5'>實戰(zhàn)</b>-華為ArkUI<b class='flag-5'>開發(fā)</b>框架和場景測試

    HarmonyOS測試技術(shù)與實戰(zhàn)-HarmonyOS自研圖形棧總結(jié)

    HDC 2021華為開發(fā)者大會 HarmonyOS測試技術(shù)與實戰(zhàn)-HarmonyOS自研圖形棧總結(jié)
    的頭像 發(fā)表于 10-23 15:47 ?1586次閱讀
    <b class='flag-5'>HarmonyOS</b>測試技術(shù)與<b class='flag-5'>實戰(zhàn)</b>-<b class='flag-5'>HarmonyOS</b>自研圖形棧總結(jié)

    華為開發(fā)者分論壇HarmonyOS學(xué)生公開課-OpenHarmony Codelabs開發(fā)案

    2021華為開發(fā)者分論壇HarmonyOS學(xué)生公開課-OpenHarmony Codelabs開發(fā)案
    的頭像 發(fā)表于 10-24 11:25 ?1888次閱讀
    華為<b class='flag-5'>開發(fā)</b>者分論壇<b class='flag-5'>HarmonyOS</b>學(xué)生公開課-OpenHarmony Codelabs<b class='flag-5'>開發(fā)案</b>例