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

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

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

OpenHarmony開(kāi)發(fā)實(shí)例:【電話簿聯(lián)系人Contacts】

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-23 09:44 ? 次閱讀

樣例簡(jiǎn)介

Contacts應(yīng)用是基于OpenHarmony SDK開(kāi)發(fā)的安裝在潤(rùn)和HiSpark Taurus AI Camera(Hi3516d)開(kāi)發(fā)板標(biāo)準(zhǔn)系統(tǒng)上的應(yīng)用;應(yīng)用主要功能是展示聯(lián)系人列表,并點(diǎn)擊某一列彈出聯(lián)系人詳細(xì)信息;

運(yùn)行效果

樣例效果

樣例原理

樣例主要有一個(gè)list組件和dialog組件組成,初始化加載數(shù)據(jù)展示列表,點(diǎn)擊某一列彈出對(duì)話框信息;如下圖:

原理圖

工程版本

  • 系統(tǒng)版本/API版本:OpenHarmony SDK API 8
  • IDE版本:DevEco Studio 3.0 Beta3

快速上手

準(zhǔn)備硬件環(huán)境

[搭建標(biāo)準(zhǔn)系統(tǒng)環(huán)境]

準(zhǔn)備開(kāi)發(fā)環(huán)境

  • 安裝最新版[DevEco Studio]。
  • 請(qǐng)參考[配置OpenHarmony SDK],完成DevEco Studio的安裝和開(kāi)發(fā)環(huán)境配置。
  • HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

準(zhǔn)備工程

配置git
  • 提前注冊(cè)準(zhǔn)備碼云gitee賬號(hào)。
  • git工具下載安裝
    sudo apt install git
    sudo apt install git-lfs
    
  • 配置git用戶信息
    git config --global user.name "yourname"
    git config --global user.email "your-email-address"
    git config --global credential.helper store
    
git下載
git clone https://gitee.com/openharmony-sig/knowledge_demo_smart_home.git --depth=1
工程導(dǎo)入
  • DevEco Studio導(dǎo)入本工程;
    打開(kāi)DevEco Studio,點(diǎn)擊File->Open->下載路徑/FA/Contacts
    打開(kāi)工程導(dǎo)入工程

編譯

  • 點(diǎn)擊File > Project Structure > Project > Signing Configs界面勾選“ Automatically generate signing ”,等待自動(dòng)簽名完成即可,點(diǎn)擊“ OK ”。如下圖所示:運(yùn)行
  • 點(diǎn)擊Build->Build Hap/APPs 編譯,編譯成功生成entry-default-signed.hap

編譯編譯完成

燒錄/安裝

  • 將搭載OpenHarmony標(biāo)準(zhǔn)系統(tǒng)的開(kāi)發(fā)板與電腦連接。
  • 識(shí)別到設(shè)備后點(diǎn)擊img,或使用默認(rèn)快捷鍵Shift+F10(macOS為Control+R)運(yùn)行應(yīng)用。

運(yùn)行

  • [安裝應(yīng)用]如果IDE沒(méi)有識(shí)別到設(shè)備就需要通過(guò)命令安裝,如下
    打開(kāi)OpenHarmony SDK路徑 toolchains 文件夾下,執(zhí)行如下hdc_std命令,其中path為hap包所在絕對(duì)路徑。

    hdc_std install -r pathentry-default-signed.hap//安裝的hap包需為xxx-signed.hap,即安裝攜帶簽名信息的hap包。
    

    PS環(huán)境準(zhǔn)備,源碼下載,編譯,燒錄設(shè)備,應(yīng)用部署的完整步驟請(qǐng)參考[這里]

代碼分析

鴻蒙開(kāi)發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

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

完整的項(xiàng)目結(jié)構(gòu)目錄如下

├─entrysrcmain
│          │  config.json  //應(yīng)用配置文件
│          │  
│          ├─js
│          │  └─MainAbility
│          │      │  app.js  // 應(yīng)用程序入口
│          │      │  
│          │      ├─common   // 公共資源
│          │      │  │  checkbutton.png
│          │      │  │  delete.png
│          │      │  │  done.png
│          │      │  │  head0.png
│          │      │  │  head1.png
│          │      │  │  head2.png
│          │      │  │  head3.png
│          │      │  │  head4.png
│          │      │  │  right.png
│          │      │  │  
│          │      │  └─images
│          │      │          bg-tv.jpg
│          │      │          Wallpaper.png
│          │      │          
│          │      ├─i18n   // 多語(yǔ)言文件
│          │      │      en-US.json
│          │      │      zh-CN.json
│          │      │      
│          │      └─pages
│          │          └─index
│          │                  index.css  //頁(yè)面樣式
│          │                  index.hml  //首頁(yè)展示
│          │                  index.js   //頁(yè)面邏輯
│          │                  
│          └─resources
│              ├─base
│              │  ├─element
│              │  │      string.json
│              │  │      
│              │  └─media
│              │          icon.png
│              │          
│              └─rawfile

開(kāi)發(fā)步驟

1. 新建OpenHarmony ETS項(xiàng)目

在DevEco Studio中點(diǎn)擊File -> New Project ->[Standard]Empty Ability->Next,Language 選擇JS語(yǔ)言,最后點(diǎn)擊Finish即創(chuàng)建成功。 image-20211124092813545

2. 編寫(xiě)主頁(yè)面

image-20211124093106260

2.1頁(yè)面展示

1)最外層是[div]容器;

2)再通過(guò)[list]包裹[list-item]并設(shè)置點(diǎn)擊事件[onclick]);

3)list_item 包括頭像[image]和包括姓名和電話號(hào)碼的div 按行布局容器,以及右尖括號(hào)圖標(biāo);

4)[dialog]對(duì)話框容器包裹div容器和以及[button]組件,且div容器里面也是兩個(gè)[label]和輸入框的[input]

< div class="container" >
    < list class="list" >
        < list-item for="{{ contactList }}" class="list-item" onfocus="listFocus({{ $idx }})"
                   onclick="clickItem({{ $idx }})" >
            < image src="{{ $item.imageSrc }}" class="list-image" >< /image >
            < div class="content" >
                < text class="list-text" >
                    {{ $item.name }}
                < /text >
                < text class="list-text" focusable="true" >
                    {{ $item.phone }}
                < /text >
            < /div >
            < image class="right-image" src="/common/right.png" >
            < /image >
        < /list-item >
    < /list >

    < dialog id="detailDialog" class="dialog-main" @cancel="dialogCancel" >
        < div class="dialog-div" >
            < image src="{{ imageSrc }}" class="avatar" >< /image >
            < div class="input-box" >
                < div class="flex-row" >
                    < label class="label" target="name" >名字< /label >
                    < input id="name" class="input" type="text" value="{{ name }}" @change="changeName" >
                    < /input >
                < /div >
                < div class="flex-row" >
                    < label class="label" target="phone" >電話< /label >
                    < input id="phone" class="input" type="text" value="{{ phone }}" @change="changePhone" >
                    < /input >
                < /div >
            < /div >
            < div class="inner-btn" >
                < button class="btn" type="text" onclick="cancel" >取消< /button >
                < button class="btn" type="text" onclick="confirm" >確認(rèn)< /button >
            < /div >
        < /div >
    < /dialog >
< /div >
2.2點(diǎn)擊事件

點(diǎn)擊某一行后,并根據(jù)當(dāng)前行的id 彈出dialog對(duì)話框,展示對(duì)應(yīng)的頭像和名字和電話

clickItem(idx) {
        this.imageSrc = this.contactList[idx].imageSrc;
        this.name = this.contactList[idx].name;
        this.phone = this.contactList[idx].phone;
        this.showDialog();
        this.index = idx;
    },
2.3對(duì)話框姓名和電話修改

點(diǎn)擊對(duì)話框名字框/電話框,會(huì)彈出軟鍵盤(pán),輸入完成后會(huì)修改對(duì)應(yīng)內(nèi)容

// 更新input Name值
    changeName(e) {
        let changeValue = e.text
        this.name = changeValue;
    },
    // 更新input Phone值
    changePhone(e) {
        let changeValue = e.text;
        this.phone = changeValue;
    },
2.4對(duì)話框確定按鈕

點(diǎn)擊對(duì)話框確定按鈕后,會(huì)將修改的姓名和電話號(hào)碼存儲(chǔ)到聯(lián)系人列表

confirm() {
        //修改對(duì)應(yīng)行后保存到列表中
        this.contactList[this.index].name = this.name;
        this.contactList[this.index].phone = this.phone;
        this.$element('detailDialog').close();
    },

操作體驗(yàn)

操作體驗(yàn)

審核編輯 黃宇

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

    關(guān)注

    79

    文章

    1966

    瀏覽量

    29962
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3635

    瀏覽量

    16061
  • 鴻蒙OS
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    4359
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    聯(lián)旭銀河廠家直銷(xiāo)各種LED開(kāi)關(guān)電源,量大從優(yōu),聯(lián)系人單經(jīng)理,電話***,微信15940140279

    聯(lián)旭銀河廠家直銷(xiāo)各種LED開(kāi)關(guān)電源,量大從優(yōu),和明偉、恒孚、創(chuàng)聯(lián)質(zhì)量一樣的好電源,高性價(jià)比,聯(lián)系人單經(jīng)理,電話***,微信15940140279
    發(fā)表于 07-30 12:22

    OpenHarmony開(kāi)發(fā)樣例】基于BearPi套件開(kāi)發(fā)的智能兒童手表系統(tǒng)

    設(shè)置完電話號(hào)碼后,然后短按手表端的F2按鍵,進(jìn)入撥打號(hào)碼界面,具體如下:長(zhǎng)按兒童手表的F2按鍵3秒以上,進(jìn)入電話簿界面,然后再短按F2按鍵可選擇聯(lián)系人,最后長(zhǎng)按F2按鍵保存并退出,下次再次短按F2按鍵
    發(fā)表于 03-08 14:27

    HC8218 阿拉伯電話本來(lái)電顯示電話芯片

    HC8218 阿拉伯電話本來(lái)電顯示電話芯片 來(lái)電顯示:FSK & DTMF兼容英文/阿拉伯文/波斯文三種語(yǔ)言菜單及電話簿輸入;電話簿輸入可采用
    發(fā)表于 01-15 09:44 ?1117次閱讀

    手機(jī)電話簿項(xiàng)目

    手機(jī)電話簿項(xiàng)目              電話簿作為
    發(fā)表于 12-19 11:44 ?363次閱讀

    手機(jī)電話簿容量

    手機(jī)電話簿容量              大容量的手機(jī)電話簿目前也成為新品手機(jī)的一個(gè)賣(mài)點(diǎn)。由于現(xiàn)代人交際面越來(lái)越廣,
    發(fā)表于 12-19 11:46 ?681次閱讀

    手機(jī)電話簿分組

    手機(jī)電話簿分組              電話簿分組功能是將現(xiàn)有電話簿根據(jù)用戶需要,自定義分組的一種
    發(fā)表于 12-19 11:48 ?1262次閱讀

    手機(jī)的電話簿項(xiàng)目

    手機(jī)的電話簿項(xiàng)目              電話簿作為手機(jī)的基本
    發(fā)表于 12-31 11:46 ?602次閱讀

    手機(jī)電話簿分組

    手機(jī)電話簿分組              電話簿分組
    發(fā)表于 12-31 11:48 ?589次閱讀

    雅虎郵箱增導(dǎo)入Facebook聯(lián)系人功能

    雅虎郵箱增導(dǎo)入Facebook聯(lián)系人功能 業(yè)界人士認(rèn)為,雅虎郵箱增加導(dǎo)入Facebook聯(lián)系人功能,意在吸引更多微軟Hotmail和谷歌Gmail用戶轉(zhuǎn)用雅虎郵箱,雖然雅虎并不一定能夠?qū)?/div>
    發(fā)表于 03-06 09:04 ?1294次閱讀

    iPhone6/plus和iPhone7/plus誤刪聯(lián)系人,秒召回的辦法,百試不爽!

    iPhone誤刪,這是一個(gè)人人都會(huì)遇到的問(wèn)題,有時(shí)候是短信,有時(shí)候是通話或者聊天記錄,還有時(shí)候就是聯(lián)系人了,明明記得存過(guò)電話,怎么需要找的時(shí)候找不到?
    發(fā)表于 05-19 10:20 ?3087次閱讀

    三星手機(jī)出現(xiàn)奇怪bug:隨機(jī)給聯(lián)系人發(fā)照片

    6月29日上午消息,多家外媒報(bào)道,一些國(guó)外用戶的三星手機(jī)的信息系統(tǒng)出現(xiàn)奇怪bug,它會(huì)隨機(jī)向手機(jī)中的聯(lián)系人發(fā)送照片。 國(guó)外論壇Reddit上已經(jīng)有不少用戶反映此問(wèn)題。具體癥狀是,手機(jī)會(huì)通過(guò)系統(tǒng)自帶
    的頭像 發(fā)表于 06-30 10:23 ?3348次閱讀

    谷歌通訊錄應(yīng)用允許用戶備份和同步設(shè)備上的聯(lián)系人

    好消息是,近日更新的 Google Contacts 應(yīng)用,已經(jīng)允許用戶選擇備份和同步本地存儲(chǔ)的聯(lián)系人信息了。
    的頭像 發(fā)表于 02-29 15:33 ?2486次閱讀
    谷歌通訊錄應(yīng)用允許用戶備份和同步設(shè)備上的<b class='flag-5'>聯(lián)系人</b>

    淺談Sci-Hub和Handshake 工作原理

    Namebase CEO Tieshun Roquerre 介紹說(shuō):「DNS 就像互聯(lián)網(wǎng)的電話簿,電話簿中的地址是服務(wù)器 IP 地址。
    的頭像 發(fā)表于 01-13 15:13 ?2607次閱讀

    基于openharmony移植實(shí)現(xiàn)類(lèi)似用戶聯(lián)系人通訊錄展示功能

    項(xiàng)目介紹 項(xiàng)目名稱:ImageLetterIcon 所屬系列:openharmony的第三方組件適配移植 功能:實(shí)現(xiàn)類(lèi)似用戶聯(lián)系人通訊錄展示功能,支持帶邊框和字母的圓形、矩形、圓角矩形、圖片背景效果
    發(fā)表于 03-23 10:09 ?0次下載
    基于<b class='flag-5'>openharmony</b>移植實(shí)現(xiàn)類(lèi)似用戶<b class='flag-5'>聯(lián)系人</b>通訊錄展示功能

    openharmony第三方組件適配移植的聯(lián)系人列表組件教程

    項(xiàng)目介紹 項(xiàng)目名稱:Contacts 所屬系列:openharmony的第三方組件適配移植 功能:一個(gè)聯(lián)系人列表,漢字轉(zhuǎn)拼音的實(shí)現(xiàn) 項(xiàng)目移植狀態(tài):主功能完成 調(diào)用差異:無(wú) 開(kāi)發(fā)版本:s
    發(fā)表于 03-30 11:03 ?0次下載