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

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

3天內不再提示

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

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

樣例簡(jiǎn)介

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

運行效果

樣例效果

樣例原理

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

原理圖

工程版本

  • 系統版本/API版本:OpenHarmony SDK API 8
  • IDE版本:DevEco Studio 3.0 Beta3

快速上手

準備硬件環(huán)境

[搭建標準系統環(huán)境]

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

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

準備工程

配置git
  • 提前注冊準備碼云gitee賬號。
  • git工具下載安裝
    sudo apt install git
    sudo apt install git-lfs
    
  • 配置git用戶(hù)信息
    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
工程導入
  • DevEco Studio導入本工程;
    打開(kāi)DevEco Studio,點(diǎn)擊File->Open->下載路徑/FA/Contacts
    打開(kāi)工程導入工程

編譯

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

編譯編譯完成

燒錄/安裝

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

運行

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

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

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

代碼分析

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

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

完整的項目結構目錄如下

├─entrysrcmain
│          │  config.json  //應用配置文件
│          │  
│          ├─js
│          │  └─MainAbility
│          │      │  app.js  // 應用程序入口
│          │      │  
│          │      ├─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項目

在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]并設置點(diǎn)擊事件[onclick]);

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

4)[dialog]對話(huà)框容器包裹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" >電話(huà)< /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" >確認< /button >
            < /div >
        < /div >
    < /dialog >
< /div >
2.2點(diǎn)擊事件

點(diǎn)擊某一行后,并根據當前行的id 彈出dialog對話(huà)框,展示對應的頭像和名字和電話(huà)

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對話(huà)框姓名和電話(huà)修改

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

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

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

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

操作體驗

操作體驗

審核編輯 黃宇

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

    關(guān)注

    79

    文章

    1914

    瀏覽量

    29498
  • OpenHarmony
    +關(guān)注

    關(guān)注

    24

    文章

    3448

    瀏覽量

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

    關(guān)注

    0

    文章

    190

    瀏覽量

    4306
收藏 人收藏

    評論

    相關(guān)推薦

    [9.3.1]--電話(huà)本和聯(lián)系人

    操作系統Andriod系統
    jf_75936199
    發(fā)布于 :2023年03月06日 00:35:31

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

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

    魅族手機刪除的聯(lián)系人怎么恢復,還有辦法能用嗎

    解決,如果你想要將已經(jīng)刪除的手機聯(lián)系人不費吹灰之力恢復的話(huà),我建議你用這個(gè)方法。 第一步:打開(kāi)手機瀏覽器或是應用市場(chǎng),搜索“手機數據恢復精靈”,手機恢復精靈官網(wǎng):,將其下載至手機上。 第二步:運行軟件
    發(fā)表于 10-13 14:13

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

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

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

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

    手機電話(huà)簿項目

    手機電話(huà)簿項目              電話(huà)簿作為
    發(fā)表于 12-19 11:44 ?351次閱讀

    手機電話(huà)簿容量

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

    手機電話(huà)簿分組

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

    手機電話(huà)簿分組

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

    手機的電話(huà)簿項目

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

    手機電話(huà)簿分組

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

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

    雅虎郵箱增導入Facebook聯(lián)系人功能 業(yè)界人士認為,雅虎郵箱增加導入Facebook聯(lián)系人功能,意在吸引更多微軟Hotmail和谷歌Gmail用戶(hù)轉用雅虎郵箱,雖然雅虎并不一定能夠實(shí)
    發(fā)表于 03-06 09:04 ?993次閱讀

    谷歌通訊錄應用允許用戶(hù)備份和同步設備上的聯(lián)系人

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

    淺談Sci-Hub和Handshake 工作原理

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

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

    項目介紹 項目名稱(chēng):Contacts 所屬系列:openharmony的第三方組件適配移植 功能:一個(gè)聯(lián)系人列表,漢字轉拼音的實(shí)現 項目移植狀態(tài):主功能完成 調用差異:無(wú) 開(kāi)發(fā)版本:s
    發(fā)表于 03-30 11:03 ?0次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看