女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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組件實現(xiàn)抽獎】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-09 18:31 ? 次閱讀

介紹

本篇Codelab是基于ArkTS的聲明式開發(fā)范式的樣例,主要介紹了Web組件如何加載本地和云端H5小程序。所加載的頁面是一個由HTML+CSS+JavaScript實現(xiàn)的完整小應(yīng)用。樣例主要包含以下功能:

  1. web組件加載H5頁面。
  2. ArkTS和H5頁面交互。

image

相關(guān)概念

  • [Web]:提供具有網(wǎng)頁顯示能力的Web組件。
  • [runJavaScript]:異步執(zhí)行JavaScript腳本,并通過回調(diào)方式返回腳本執(zhí)行的結(jié)果。

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

本篇Codelab使用了在線網(wǎng)頁,需要在配置文件module.json5文件里添加網(wǎng)絡(luò)權(quán)限:ohos.permission.INTERNET。

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

約束與限制

本篇Codelab需要搭建服務(wù)端環(huán)境,服務(wù)端搭建流程如下:

  1. 搭建nodejs環(huán)境:本篇Codelab的服務(wù)端是基于nodejs實現(xiàn)的,需要安裝nodejs,如果您本地已有nodejs環(huán)境可以跳過此步驟。
    1. 檢查本地是否安裝nodejs:打開命令行工具(如Windows系統(tǒng)的cmd和Mac電腦Terminal,這里以Windows為例),輸入node -v,如果可以看到版本信息,說明已經(jīng)安裝nodejs。
    2. 如果本地沒有nodejs環(huán)境,您可以去nodejs官網(wǎng)上下載所需版本進(jìn)行安裝配置。
    3. 配置完環(huán)境變量后,重新打開命令行工具,輸入node -v,如果可以看到版本信息,說明已安裝成功。
  2. 運(yùn)行服務(wù)端代碼:在本項目的HttpServerOfWeb目錄下打開命令行工具,輸入npm install 安裝服務(wù)端依賴包,安裝成功后輸入npm start點(diǎn)擊回車。看到“服務(wù)器啟動成功!"則表示服務(wù)端已經(jīng)在正常運(yùn)行。
  3. 構(gòu)建局域網(wǎng)環(huán)境:測試本Codelab時要確保運(yùn)行服務(wù)端代碼的電腦和測試機(jī)連接的是同一局域網(wǎng)下的網(wǎng)絡(luò),您可以用您的手機(jī)開一個個人熱點(diǎn),然后將測試機(jī)和運(yùn)行服務(wù)端代碼的電腦都連接您的手機(jī)熱點(diǎn)進(jìn)行測試。
  4. 連接服務(wù)器地址:打開命令行工具,輸入ipconfig命令查看本地ip,將本地ip地址復(fù)制到entry/src/main/ets/common/constants/Constants.ets文件下的23行,注意只替換ip地址部分,不要修改端口號,保存好ip之后即可運(yùn)行Codelab進(jìn)行測試。

環(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)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

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

本篇Codelab只對核心代碼進(jìn)行講解,對于完整代碼,我們會在gitee中提供。

├──entry/src/main/ets        // 代碼區(qū)
│  ├──common
│  │  └──Constant.ets        // 常量類
│  ├──entryability            
│  │  └──EntryAbility.ts     // 程序入口類
│  └──pages
│     ├──MainPage.ets        // 主頁入口文件
│     └──WebPage.ets         // 抽獎頁入口文件
├──entry/src/main/resources  
│  ├──base
│  │  ├──element             // 尺寸、顏色、文字等資源文件存放位置
│  │  ├──media               // 媒體資源存放位置
│  │  └──profile             // 頁面配置文件存放位置
│  ├──en_US                  // 國際化英文
│  ├──rawfile                // 本地html代碼存放位置 
│  └──zh_CN                  // 國際化中文
└──HttpServerOfWeb           // 服務(wù)端代碼

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

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

H5小程序

抽獎小程序由HTML+CSS+JS實現(xiàn),HTML代碼使用無序列表實現(xiàn)抽獎盤頁面布局:

< !-- index.html -- >
< div class="luckyDraw" >
    < !-- 使用無序列表實現(xiàn)抽獎盤 -- >
    < ul id="prize" class="prizes" >
        ...
        < li class="prizes-li" >< img class="pic" onclick="startDraw()" src="#" >< /li >
    < /ul >
< /div >

CSS代碼設(shè)置抽獎盤的樣式:

/* css/index.css */
/* 抽獎列表 */
.prizes {
    width: 96.5%;
    height: 96.7%;
    position: absolute;
}
...
/* 點(diǎn)擊抽獎 */
.prizes li:nth-of-type(9) {
    width: 34.9%;
    height: 34.6%;
    ...
}
...

JS代碼實現(xiàn)抽獎的業(yè)務(wù)邏輯,并返回抽獎結(jié)果:

// js/index.js
function roll() {
  ...
  // 滿足轉(zhuǎn)圈數(shù)和指定位置就停止
  if (count >= totalCount && (prizesPosition + 1) === index) {
    clearTimeout(timer);
    isClick = true;
    speed = initSpeed;
    // 等待1s打開彈窗
    timer = setTimeout(openDialog, 1000); 
  }
  ...
}

function startDraw() {
  ...
  if (isClick) {
    ...
    roll();
    isClick = false;
  }
}

function openDialog() {
  // confirm返回抽獎結(jié)果
  confirm(prizesArr[prizesPosition]);
}

Web組件

啟動應(yīng)用進(jìn)入首頁,頁面提供兩個按鈕,分別對應(yīng)加載本地H5和加載云端H5,點(diǎn)擊按鈕跳轉(zhuǎn)到抽獎頁面。

// MainPage.ets
Column() {
  ...
  Navigator({ target: WEB_PAGE_URI, type: NavigationType.Push }) {
    Button($r('app.string.loadLocalH5'))
      ...
  }
  .params({ path: LOCAL_PATH, tips: $r('app.string.local') })

  Navigator({ target: WEB_PAGE_URI, type: NavigationType.Push }) {
    Button($r('app.string.loadCloudH5'))
      ...
  }
  .params({ path: CLOUD_PATH, tips: $r('app.string.online') })
}

說明: H5頁面本地存放在resources/rawfile目錄下,通過$rawfile()訪問;云端則存放在HttpServerOfWeb服務(wù)器上,開發(fā)者可以根據(jù)約束與限制章節(jié)服務(wù)端搭建流程進(jìn)行服務(wù)器搭建。

抽獎頁面主要是由“點(diǎn)擊抽獎”按鈕和Web組件構(gòu)成。給“點(diǎn)擊抽獎”按鈕綁定點(diǎn)擊事件,實現(xiàn)點(diǎn)擊按鈕調(diào)用H5頁面的JavaScript函數(shù),并且通過onConfirm回調(diào)返回抽獎結(jié)果,在原生頁面彈窗顯示,完成ArkTS和H5的雙向交互。

// WebPage.ets
Column() {
  ...
  Web({ src: this.params['path'], controller: this.webController })
    ...
    // 網(wǎng)頁調(diào)用confirm()告警時觸發(fā)此回調(diào)
    .onConfirm((event) = > {
      // 彈窗顯示抽獎結(jié)果
      AlertDialog.show({
        message: WebConstant.WEB_ALERT_DIALOG_TEXT_VALUE + event.message,
        ...
      })
      return true;
    })
    ...
  Column() {
    Text($r('app.string.textValue'))
      ...
    Text(this.params['tips'])
      ...
  }
  Button($r('app.string.btnValue'))
    ...
    .onClick(() = > {
      // 異步執(zhí)行JavaScript腳本
      this.webController.runJavaScript('startDraw()');
    })
}

審核編輯 黃宇

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

    關(guān)注

    2

    文章

    1281

    瀏覽量

    70790
  • 組件
    +關(guān)注

    關(guān)注

    1

    文章

    529

    瀏覽量

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

    關(guān)注

    59

    文章

    2503

    瀏覽量

    43762
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    2052

    瀏覽量

    32109
  • OpenHarmony
    +關(guān)注

    關(guān)注

    26

    文章

    3820

    瀏覽量

    18114
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    HarmonyOS開發(fā)案例:【使用List組件實現(xiàn)設(shè)置項】

    使用List組件、Toggle組件以及Router接口,實現(xiàn)一個簡單的設(shè)置頁,點(diǎn)擊將跳轉(zhuǎn)到對應(yīng)的詳細(xì)設(shè)置頁面。
    的頭像 發(fā)表于 05-10 17:01 ?1300次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【使用List<b class='flag-5'>組件</b><b class='flag-5'>實現(xiàn)</b>設(shè)置項】

    HarmonyOS開發(fā)案例:【使用List組件實現(xiàn)商品列表】

    OpenHarmony ArkTS提供了豐富的接口和組件開發(fā)者可以根據(jù)實際場景和開發(fā)需求,選用不同的組件和接口。
    的頭像 發(fā)表于 05-10 16:41 ?1900次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【使用List<b class='flag-5'>組件</b><b class='flag-5'>實現(xiàn)</b>商品列表】

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

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

    HarmonyOS開發(fā)案例:【Web組件實戰(zhàn)】

    使用ArkTS語言實現(xiàn)一個簡單的免登錄過程,向大家介紹基本的cookie管理操作。
    的頭像 發(fā)表于 04-28 17:30 ?1640次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【<b class='flag-5'>Web</b><b class='flag-5'>組件</b>實戰(zhàn)】

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

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

    HarmonyOS開發(fā)案例:【抽獎轉(zhuǎn)盤】

    基于畫布組件、顯式動畫,實現(xiàn)的一個自定義抽獎圓形轉(zhuǎn)盤。
    的頭像 發(fā)表于 05-07 10:10 ?926次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【<b class='flag-5'>抽獎</b>轉(zhuǎn)盤】

    「極速探索HarmonyOS NEXT 」閱讀體驗】+Web組件

    ,則源于web開發(fā)。盡管Web應(yīng)用在性能上略遜一籌,但由于其龐大的用戶使用基數(shù),在諸多場景下仍不可或缺。 在應(yīng)用中顯示 Web 頁面 在開發(fā)
    發(fā)表于 03-10 10:39

    使用WebView組件實現(xiàn)應(yīng)用與Web頁面間的通信

    1. 介紹開發(fā)者如果需要在自己的應(yīng)用中嵌入Web頁面,可以通過WebView組件進(jìn)行開發(fā)。WebView組件派生于通用
    發(fā)表于 08-26 10:39

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

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

    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組件加載頁面

    ;/html> </html> 加載HTML格式的文本數(shù)據(jù) Web組件可以通過??loadData??接口實現(xiàn)加載HTML格式的文本數(shù)據(jù)。當(dāng)開發(fā)者不需要加載整個頁面,
    發(fā)表于 08-31 17:51

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

    ;gt; </html> 加載HTML格式的文本數(shù)據(jù) Web組件可以通過??loadData??接口實現(xiàn)加載HTML格式的文本數(shù)據(jù)。當(dāng)開發(fā)者不需要加載整個頁面,只需要顯示
    發(fā)表于 09-15 15:28

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

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

    HarmonyOS開發(fā)案例:【抽獎轉(zhuǎn)盤】

    基于畫布組件、動畫樣式,實現(xiàn)的一個自定義抽獎圓形轉(zhuǎn)盤。
    的頭像 發(fā)表于 04-24 21:58 ?675次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【<b class='flag-5'>抽獎</b>轉(zhuǎn)盤】

    HarmonyOS開發(fā)案例:【 switch、chart組件的使用】

    基于switch組件和chart組件實現(xiàn)線形圖、占比圖、柱狀圖,并通過switch切換chart組件數(shù)據(jù)的動靜態(tài)顯示。
    的頭像 發(fā)表于 04-25 20:58 ?964次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)案</b>例:【 switch、chart<b class='flag-5'>組件</b>的使用】