0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenHarmony开发实例:【电话簿联系人Contacts】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-04-23 09:44 次阅读

样例简介

Contacts应用是基于OpenHarmony SDK开发的安装在润和HiSpark Taurus AI Camera(Hi3516d)开发板标准系统上的应用;应用主要功能是展示联系人列表,并点击某一列弹出联系人详细信息

运行效果

样例效果

样例原理

样例主要有一个list组件和dialog组件组成,初始化加载数据展示列表,点击某一列弹出对话框信息;如下图:

原理图

工程版本

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

快速上手

准备硬件环境

[搭建标准系统环境]

准备开发环境

  • 安装最新版[DevEco Studio]。
  • 请参考[配置OpenHarmony SDK],完成DevEco Studio的安装和开发环境配置。
  • HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿

准备工程

配置git
  • 提前注册准备码云gitee账号。
  • 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
工程导入
  • DevEco Studio导入本工程;
    打开DevEco Studio,点击File->Open->下载路径/FA/Contacts
    打开工程导入工程

编译

  • 点击File > Project Structure > Project > Signing Configs界面勾选“ Automatically generate signing ”,等待自动签名完成即可,点击“ OK ”。如下图所示:运行
  • 点击Build->Build Hap/APPs 编译,编译成功生成entry-default-signed.hap

编译编译完成

烧录/安装

  • 将搭载OpenHarmony标准系统的开发板与电脑连接。
  • 识别到设备后点击img,或使用默认快捷键Shift+F10(macOS为Control+R)运行应用。

运行

  • [安装应用]如果IDE没有识别到设备就需要通过命令安装,如下
    打开OpenHarmony SDK路径 toolchains 文件夹下,执行如下hdc_std命令,其中path为hap包所在绝对路径。

    hdc_std install -r pathentry-default-signed.hap//安装的hap包需为xxx-signed.hap,即安装携带签名信息的hap包。
    

    PS环境准备,源码下载,编译,烧录设备,应用部署的完整步骤请参考[这里]

代码分析

鸿蒙开发指导文档:[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   // 多语言文件
│          │      │      en-US.json
│          │      │      zh-CN.json
│          │      │      
│          │      └─pages
│          │          └─index
│          │                  index.css  //页面样式
│          │                  index.hml  //首页展示
│          │                  index.js   //页面逻辑
│          │                  
│          └─resources
│              ├─base
│              │  ├─element
│              │  │      string.json
│              │  │      
│              │  └─media
│              │          icon.png
│              │          
│              └─rawfile

开发步骤

1. 新建OpenHarmony ETS项目

在DevEco Studio中点击File -> New Project ->[Standard]Empty Ability->Next,Language 选择JS语言,最后点击Finish即创建成功。 image-20211124092813545

2. 编写主页面

image-20211124093106260

2.1页面展示

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

2)再通过[list]包裹[list-item]并设置点击事件[onclick]);

3)list_item 包括头像[image]和包括姓名和电话号码的div 按行布局容器,以及右尖括号图标;

4)[dialog]对话框容器包裹div容器和以及[button]组件,且div容器里面也是两个[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" >确认< /button >
            < /div >
        < /div >
    < /dialog >
< /div >
2.2点击事件

点击某一行后,并根据当前行的id 弹出dialog对话框,展示对应的头像和名字和电话

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对话框姓名和电话修改

点击对话框名字框/电话框,会弹出软键盘,输入完成后会修改对应内容

// 更新input Name值
    changeName(e) {
        let changeValue = e.text
        this.name = changeValue;
    },
    // 更新input Phone值
    changePhone(e) {
        let changeValue = e.text;
        this.phone = changeValue;
    },
2.4对话框确定按钮

点击对话框确定按钮后,会将修改的姓名和电话号码存储到联系人列表

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

操作体验

操作体验

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HarmonyOS
    +关注

    关注

    79

    文章

    1967

    浏览量

    29997
  • OpenHarmony
    +关注

    关注

    25

    文章

    3657

    浏览量

    16129
  • 鸿蒙OS
    +关注

    关注

    0

    文章

    188

    浏览量

    4367
收藏 人收藏

    评论

    相关推荐

    联旭银河厂家直销各种LED开关电源,量大从优,联系人单经理,电话***,微信15940140279

    联旭银河厂家直销各种LED开关电源,量大从优,和明伟、恒孚、创联质量一样的好电源,高性价比,联系人单经理,电话***,微信15940140279
    发表于 07-30 12:22

    OpenHarmony开发样例】基于BearPi套件开发的智能儿童手表系统

    设置完电话号码后,然后短按手表端的F2按键,进入拨打号码界面,具体如下:长按儿童手表的F2按键3秒以上,进入电话簿界面,然后再短按F2按键可选择联系人,最后长按F2按键保存并退出,下次再次短按F2按键
    发表于 03-08 14:27

    HC8218 阿拉伯电话本来电显示电话芯片

    HC8218 阿拉伯电话本来电显示电话芯片 来电显示:FSK & DTMF兼容英文/阿拉伯文/波斯文三种语言菜单及电话簿输入;电话簿输入可采用
    发表于 01-15 09:44 1129次阅读

    手机电话簿项目

    手机电话簿项目              电话簿作为
    发表于 12-19 11:44 364次阅读

    手机电话簿容量

    手机电话簿容量              大容量的手机电话簿目前也成为新品手机的一个卖点。由于现代人交际面越来越广,
    发表于 12-19 11:46 711次阅读

    手机电话簿分组

    手机电话簿分组              电话簿分组功能是将现有电话簿根据用户需要,自定义分组的一种
    发表于 12-19 11:48 1262次阅读

    手机的电话簿项目

    手机的电话簿项目              电话簿作为手机的基本
    发表于 12-31 11:46 624次阅读

    手机电话簿分组

    手机电话簿分组              电话簿分组
    发表于 12-31 11:48 589次阅读

    雅虎邮箱增导入Facebook联系人功能

    雅虎邮箱增导入Facebook联系人功能 业界人士认为,雅虎邮箱增加导入Facebook联系人功能,意在吸引更多微软Hotmail和谷歌Gmail用户转用雅虎邮箱,虽然雅虎并不一定能够实
    发表于 03-06 09:04 1301次阅读

    iPhone6/plus和iPhone7/plus误删联系人,秒召回的办法,百试不爽!

    iPhone误删,这是一个人人都会遇到的问题,有时候是短信,有时候是通话或者聊天记录,还有时候就是联系人了,明明记得存过电话,怎么需要找的时候找不到?
    发表于 05-19 10:20 3092次阅读

    三星手机出现奇怪bug:随机给联系人发照片

    6月29日上午消息,多家外媒报道,一些国外用户的三星手机的信息系统出现奇怪bug,它会随机向手机中的联系人发送照片。 国外论坛Reddit上已经有不少用户反映此问题。具体症状是,手机会通过系统自带
    的头像 发表于 06-30 10:23 3355次阅读

    谷歌通讯录应用允许用户备份和同步设备上的联系人

    好消息是,近日更新的 Google Contacts 应用,已经允许用户选择备份和同步本地存储的联系人信息了。
    的头像 发表于 02-29 15:33 2491次阅读
    谷歌通讯录应用允许用户备份和同步设备上的<b class='flag-5'>联系人</b>

    浅谈Sci-Hub和Handshake 工作原理

    Namebase CEO Tieshun Roquerre 介绍说:「DNS 就像互联网的电话簿电话簿中的地址是服务器 IP 地址。
    的头像 发表于 01-13 15:13 2610次阅读

    基于openharmony移植实现类似用户联系人通讯录展示功能

    项目介绍 项目名称:ImageLetterIcon 所属系列:openharmony的第三方组件适配移植 功能:实现类似用户联系人通讯录展示功能,支持带边框和字母的圆形、矩形、圆角矩形、图片背景效果
    发表于 03-23 10:09 0次下载
    基于<b class='flag-5'>openharmony</b>移植实现类似用户<b class='flag-5'>联系人</b>通讯录展示功能

    openharmony第三方组件适配移植的联系人列表组件教程

    项目介绍 项目名称:Contacts 所属系列:openharmony的第三方组件适配移植 功能:一个联系人列表,汉字转拼音的实现 项目移植状态:主功能完成 调用差异:无 开发版本:s
    发表于 03-30 11:03 0次下载