HarmonyOS 鸿蒙Next 如何拉起通讯录添加联系人

发布于 1周前 作者 eggper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何拉起通讯录添加联系人

目前开发添加联系人到通讯录的功能,看文档只找到直接添加联系人的方法(需要高级别权限),想了解下有没类似拨打电话(https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-call-V5#callmakecall12)那样只是跳转到相应应用而不需要权限的方法

2 回复
参考示例:
import common from '@ohos.app.ability.common';
import { BusinessError } from '@kit.BasicServicesKit';[@Entry](/user/Entry)[@Component](/user/Component) struct Index {
  build() {
    Row() {
      Column() {
        Button('拉起新建联系人界面').fontSize(24).fontWeight(FontWeight.Bold)
          .onClick(() =>{
          let context = getContext(this) as common.UIAbilityContext;
          startContact(context);
        }).margin(10)
      }.width('100%')
    }.height('100%')
  }
}
function startContact(context: common.UIAbilityContext) : void {
  context.startAbility({
    bundleName: 'com.ohos.contacts',
    abilityName: 'com.ohos.contacts.MainAbility',
    parameters: {
      phoneNumber: 19900000000,
      pageFlag: 'page_flag_save_contact'
    }
  }).then(() =>{
    console.info('successfully.');
  }).
  catch((err: BusinessError) =>{
    console.error(`Failed Code: $ {
            err.code
        },
        message: $ {
            err.message
        }`);
  });
}

在HarmonyOS鸿蒙Next系统中,拉起通讯录并添加联系人的操作,通常涉及到对Contacts Kit的使用。以下是一个简要的步骤说明:

  1. 权限声明

    • 读取联系人需要声明ohos.permission.READ_CONTACTS权限。
    • 添加、删除或更新联系人需要声明ohos.permission.WRITE_CONTACTS权限。
  2. 导入模块

    • 使用import { contact } from '@kit.ContactsKit';来导入Contacts Kit模块。
  3. 拉起通讯录

    • 调用contact.selectContacts方法,可以拉起通讯录供用户选择。例如:
contact.selectContacts({ isMultiSelect: false }, (err, data) => {
  if (err) {
    console.error(`selectContact callback: err->${JSON.stringify(err)}`);
    return;
  }
  console.log(`selectContact callback: success data->${JSON.stringify(data)}`);
});
  1. 添加联系人

    • 使用contact.addContact方法,可以添加新的联系人。注意,该方法通常返回一个Promise对象,因此需要使用异步处理方式。

HarmonyOS Next 纯血鸿蒙教程B站免费学习地址https://www.bilibili.com/video/BV1fw2ZYSEk2

配套课件及涉及源码网盘下载地址http://bbs.itying.com/topic/6568836e6a4621002b88a6f6

回到顶部