樣例簡(jiǎn)介
Contacts應(yīng)用是基于OpenHarmony SDK開發(fā)的安裝在潤(rùn)和HiSpark Taurus AI Camera(Hi3516d)開發(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)備開發(fā)環(huán)境
- 安裝最新版[DevEco Studio]。
- 請(qǐng)參考[配置OpenHarmony SDK],完成DevEco Studio的安裝和開發(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)入本工程;
打開DevEco Studio,點(diǎn)擊File->Open->下載路徑/FA/Contacts
編譯
- 點(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標(biāo)準(zhǔn)系統(tǒng)的開發(fā)板與電腦連接。
- 識(shí)別到設(shè)備后點(diǎn)擊
,或使用默認(rèn)快捷鍵Shift+F10(macOS為Control+R)運(yùn)行應(yīng)用。
[安裝應(yīng)用]如果IDE沒有識(shí)別到設(shè)備就需要通過命令安裝,如下
打開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)參考[這里]
代碼分析
鴻蒙開發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
完整的項(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 // 多語言文件
│ │ │ en-US.json
│ │ │ zh-CN.json
│ │ │
│ │ └─pages
│ │ └─index
│ │ index.css //頁面樣式
│ │ index.hml //首頁展示
│ │ index.js //頁面邏輯
│ │
│ └─resources
│ ├─base
│ │ ├─element
│ │ │ string.json
│ │ │
│ │ └─media
│ │ icon.png
│ │
│ └─rawfile
開發(fā)步驟
1. 新建OpenHarmony ETS項(xiàng)目
在DevEco Studio中點(diǎn)擊File -> New Project ->[Standard]Empty Ability->Next,Language 選擇JS語言,最后點(diǎn)擊Finish即創(chuàng)建成功。
2. 編寫主頁面
2.1頁面展示
1)最外層是[div]容器;
2)再通過[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ì)彈出軟鍵盤,輸入完成后會(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)
審核編輯 黃宇
-
HarmonyOS
+關(guān)注
關(guān)注
79文章
2052瀏覽量
32124 -
OpenHarmony
+關(guān)注
關(guān)注
26文章
3824瀏覽量
18134 -
鴻蒙OS
+關(guān)注
關(guān)注
0文章
191瀏覽量
4877
發(fā)布評(píng)論請(qǐng)先 登錄
聯(lián)旭銀河廠家直銷各種LED開關(guān)電源,量大從優(yōu),聯(lián)系人單經(jīng)理,電話***,微信15940140279
【OpenHarmony開發(fā)樣例】基于BearPi套件開發(fā)的智能兒童手表系統(tǒng)
HC8218 阿拉伯電話本來電顯示電話芯片
手機(jī)電話簿容量
雅虎郵箱增導(dǎo)入Facebook聯(lián)系人功能
iPhone6/plus和iPhone7/plus誤刪聯(lián)系人,秒召回的辦法,百試不爽!
三星手機(jī)出現(xiàn)奇怪bug:隨機(jī)給聯(lián)系人發(fā)照片
谷歌通訊錄應(yīng)用允許用戶備份和同步設(shè)備上的聯(lián)系人

淺談Sci-Hub和Handshake 工作原理
基于openharmony移植實(shí)現(xiàn)類似用戶聯(lián)系人通訊錄展示功能

評(píng)論