#HarmonyOS NEXT体验官#联系人管理器 原创

不爱吃糖的程序媛
发布于 2024-7-29 06:42
浏览
1收藏

联系人管理器

作为一个为数不多的做鸿蒙开发的女性开发者,很荣幸能参与到目前鸿蒙生态的建设上来,今天我们就开看一下如何学习鸿蒙开发吧,

首先大家需要下载IDE

下载IDE

DevEco Studio NEXT Developer Beta2配套支持HarmonyOS NEXT Developer Beta2版本的应用及服务开发,新提供了引入工程外模块代码支持编码、构建、调试能力、支持构建字节码har包、支持webview场景调优、支持ArkTS内存泄漏自动检测等功能,持续提升应用及服务开发效率。大家在下面下载就好

https://developer.huawei.com/consumer/cn/deveco-studio/,

下载完成我们就可以开始学习啦。

我们先来做一个联系人管理器。

Contacts Kit开发概述

Contacts Kit可以帮助开发者轻松实现联系人的增删改查等功能。该Kit提供了一系列API,可以让开发者在应用中快速集成联系人管理功能。

约束与限制

读取联系人需要声明接口调用的权限:ohos.permission.READ_CONTACTS,此权限级别为system_basic。

添加联系人、删除联系人、更新联系人需要声明接口调用的权限:ohos.permission.WRITE_CONTACTS,此权限级别为system_basic。

所以我们需要先添加权限,然后申请ACL权限。

{
  "name": "ohos.permission.READ_CONTACTS",
  "reason": "$string:EntryAbility_desc",
  "usedScene": {
    "abilities": [
      "FormAbility"
    ],
    "when": "always"
  }
},

选择联系人

当用户选择联系人的时候,通过Picker的方式,拉起联系人列表,引导用户完成界面操作,接口本身无需申请权限。

  1. 导入相关的联系人模块。

    import { contact } from '@kit.ContactsKit';
    import { BusinessError } from '@kit.BasicServicesKit';
    
  2. 调用联系人接口,拉起联系人列表,用户点击对应的联系人后返回。

    contact.selectContacts({
      isMultiSelect:false
    },(err: BusinessError, data) => {
        if (err) {
          console.error(`selectContact callback: err->${JSON.stringify(err)}`);
            return;
        }
        console.log(`selectContact callback: success data->${JSON.stringify(data)}`);
    });
    
  3. 完成操作,返回想要的data数据。
    #HarmonyOS NEXT体验官#联系人管理器-鸿蒙开发者社区

这样的话,我们就拿到联系人数据啦。这里我们就已经完成了联系人的获取,

联系人创建

接下来我们看一下联系人的创建。同样的,也是需要申请权限。
#HarmonyOS NEXT体验官#联系人管理器-鸿蒙开发者社区

{
  "name": "ohos.permission.WRITE_CONTACTS",
  "reason": "$string:EntryAbility_desc",
  "usedScene": {
    "abilities": [
      "FormAbility"
    ],
    "when": "always"
  }
}

添加联系人

contact.addContact

addContact(context: Context, contact: Contact): Promise<number>

添加联系人,使用Promise方式作为异步方法。

元服务API:从API version 12开始,该接口支持在元服务中使用。

需要权限:ohos.permission.WRITE_CONTACTS

系统能力:SystemCapability.Applications.ContactsData

参数:

参数名 类型 必填 说明
context Context 应用上下文Context,Stage模型的应用Context定义见Context
contact Contact 联系人信息。

返回值:

类型 说明
Promise<number> 以Promise形式返回结果,返回添加的联系人id。

错误码:

错误码ID 错误信息
201 Permission denied.
401 Parameter error. Possible causes: Mandatory parameters are left unspecified.

示例:

  import { BusinessError } from '@kit.BasicServicesKit';
  // 获取context
  let context = getContext(this) as Context;
  let promise = contact.addContact(
    context,
    {name: {fullName: '坚果派教我学鸿蒙'},
      phoneNumbers: [{phoneNumber: '17752170152'}]
  });
  promise.then((data) => {
    console.log(`addContact success: data->${JSON.stringify(data)}`);
  }).catch((err: BusinessError) => {
    console.error(`addContact fail: err->${JSON.stringify(err)}`);
  });
import { contact } from '@kit.ContactsKit';
import { BusinessError } from '@kit.BasicServicesKit';


@Entry
@Component
struct CONTACTSPage {
  @State desc: contact.Contact[] = []

  build() {
    Column() {

      Row() {
        Text(
          "联系人信息"
        )
        Text(
          JSON.stringify(this.desc)
        )
      }


      Button("添加通讯录").onClick(() => {
        let context = getContext(this) as Context;
        contact.addContact(
          context,
          {
            name: { fullName: 'xxx' },
            phoneNumbers: [{ phoneNumber: '17752170152' }]
          }, (err: BusinessError, data) => {
          if (err) {
            console.error(`addContact callback: err->${JSON.stringify(err)}`);
            return;
          }
          console.log(`addContact callback: success data->${JSON.stringify(data)}`);
        });
      })
      Button("获取通讯录").onClick(() => {
        contact.selectContacts({
          isMultiSelect: false
        }, (err: BusinessError, data) => {
          if (err) {
            console.error(`selectContact callback: err->${JSON.stringify(err)}`);
            return;
          }
          // this.message = JSON.stringify(data)
          this.desc = data
          console.log(`selectContact callback: success data->${JSON.stringify(data[0].name?.fullName)}`);
        });
      })

    }
    .height('100%')
    .width('100%')
  }
}

这样的话,我们就完成了,联系人的创建与选择联系人,不得不说,目前鸿蒙提供的Kit还是很方便呢。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
已于2024-8-1 17:50:20修改
2
收藏 1
回复
举报
回复
    相关推荐