/ Title: contacts Description: contacts /

来自于:官方

概述

contacts 模块封装了系统通讯录的相关接口;可实现联系人的增、删、改、查的操作,创建、管理分组、移动联系人等功能;用于读取或管理通讯录联系人的数据。contacts 模块是 contact 模块的优化版。注意在 Android 平台上使用此模块云编译时请添加通讯录访问权限

select

打开系统通讯录界面,选择单个联系人,返回已选的联系人信息

select(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. id: 0, //数字类型;系统分配的联系人 id
  4. lastName: '', //字符串类型;联系人姓氏,若该联系人此信息缺少则本字段为undefine
  5. firstName: '', //字符串类型;联系人名字,若该联系人此信息缺少则本字段为undefine
  6. middleName: '', //字符串类型;联系人中间名,若该联系人此信息缺少则本字段为undefine
  7. prefix: '', //字符串类型;名称前缀,若该联系人此信息缺少则本字段为undefine
  8. suffix: '', //字符串类型;名称后缀,若该联系人此信息缺少则本字段为undefine
  9. fullName: '', //字符串类型;联系人全名,若该联系人此信息缺少则本字段为undefine
  10. phones: [{'工作': '10086'}], //数组类型;联系人电话组成的数组
  11. //内部字段:[{"标签": '号码'}]
  12. email: '', //字符串类型;邮箱
  13. company: '', //字符串类型;公司
  14. title: '', //字符串类型;职位
  15. address: {
  16. City: '', //字符串类型;城市
  17. Country: '', //字符串类型;国家
  18. State: '', //字符串类型;省份
  19. Street: '', //字符串类型;街道
  20. ZIP: '100020' //字符串类型;邮编
  21. },
  22. note: '', //字符串类型;备注
  23. groupId: 1, //数字类型;联系人在通讯录中所属分组 id
  24. groupName: '' //字符串类型;所在分组的名字
  25. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 0 //数字类型;
  3. //错误码:
  4. -1:(用户未授权本app访问通讯录)
  5. 0:(获取成功)
  6. 1:(用户取消)
  7. }

示例代码

  1. var contacts = api.require('contacts');
  2. contacts.select(function( ret, err ){
  3. if( ret ){
  4. alert( JSON.stringify( ret ) );
  5. }else{
  6. alert( JSON.stringify( err ) );
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

add

向通讯录添加一个联系人,所有参数不可同时为空。

add({params}, callback(ret, err))

params

groupId:

  • 类型:数字
  • 描述:(可选项)分组 id,若不传则表示未分组

lastName:

  • 类型:字符串
  • 描述:(可选项)联系人姓氏

firstName:

  • 类型:字符串
  • 描述:(可选项)联系人名字

middleName:

  • 类型:字符串
  • 描述:(可选项)联系人中间名

prefix:

  • 类型:字符串
  • 描述:(可选项)联系人名称前缀

suffix:

  • 类型:字符串
  • 描述:(可选项)联系人名称后缀

phones:

  • 类型:数组
  • 描述:(可选项)联系人电话组成的数组
  • 内部字段:
  1. //数组类型;内部字段:[{"标签": '号码'}]
  2. [{
  3. '工作': '13512345678'
  4. },{
  5. '家庭': '13512345678'
  6. }]

email:

  • 类型:字符串
  • 描述:(可选项)联系人邮箱

company:

  • 类型:字符串
  • 描述:(可选项)联系人公司

title:

  • 类型:字符串
  • 描述:(可选项)联系人职位

address:

  • 类型:JSON 对象
  • 描述:(可选项)联系人地址
  • 内部字段:
  1. {
  2. City: '', //(可选项)字符串类型;城市;
  3. Country: '', //(可选项)字符串类型;国家;
  4. State: '', //(可选项)字符串类型;省份;
  5. Street: '', //(可选项)字符串类型;街道;
  6. ZIP: '' //(可选项)字符串类型;邮编;
  7. }

note:

  • 类型:字符串
  • 描述:(可选项)联系人备注

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 0 //数字类型;
  3. //错误码:
  4. -1:(用户未授权本app访问通讯录)
  5. 0:(添加成功)
  6. 1:(分组不存在)
  7. }

示例代码

  1. var contacts = api.require('contacts');
  2. contacts.add({
  3. groupId: 1,
  4. lastName: '张',
  5. firstName: '三丰',
  6. middleName: '太极',
  7. prefix: '他',
  8. suffix: '牛',
  9. phones: [{
  10. '住宅': '12345678'
  11. },{
  12. '工作': '87654321'
  13. }],
  14. email: 'zhengcuan@api.com',
  15. company: '柚子科技',
  16. title: '工程师',
  17. address: {
  18. Country: '中国',
  19. State: '北京',
  20. City: '北京市',
  21. Street: '鸟巢街',
  22. ZIP: '100000'
  23. },
  24. note: '无'
  25. }, function(ret, err){
  26. if( ret ){
  27. alert( JSON.stringify( ret ) );
  28. }else{
  29. alert( JSON.stringify( err ) );
  30. }
  31. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

delete

从通讯录删除一个或多个联系人

delete({params}, callback(ret, err))

params

ids:

  • 类型:数组, 数组元素为整型
  • 描述:联系人的 id 组成的数组,若传入的 id 不存在,则忽略此id

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 0 //数字类型;
  3. //错误码:
  4. -1:(用户未授权本app访问通讯录,Android 平台忽略此错误码)
  5. 0:(删除成功)
  6. }

示例代码

  1. var contacts = api.require('contacts');
  2. contacts.delete({
  3. ids: [1, 2]
  4. }, function(ret, err){
  5. if( ret ){
  6. alert( JSON.stringify( ret ) );
  7. }else{
  8. alert( JSON.stringify( err ) );
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

update

根据 id 更新通讯录的联系人信息

update({params}, callback(ret, err))

params

id:

  • 类型:数字
  • 描述:联系人 id

lastName:

  • 类型:字符串
  • 描述:(可选项)联系人的姓氏

firstName:

  • 类型:字符串
  • 描述:(可选项)联系人名字

middleName:

  • 类型:字符串
  • 描述:(可选项)联系人中间名

prefix:

  • 类型:字符串
  • 描述:(可选项)联系人名称前缀

suffix:

  • 类型:字符串
  • 描述:(可选项)联系人名称后缀

phones:

  • 类型:数组
  • 描述:(可选项)联系人电话组成的数组,注意:若本参数不为空,则重置已存在的所有电话及其标签
  • 内部字段:
  1. //数组类型;内部字段:[{"标签": '号码'}]
  2. [{
  3. '工作': '10086'
  4. }]

email:

  • 类型:字符串
  • 描述:(可选项)联系人邮箱

company:

  • 类型:字符串
  • 描述:(可选项)联系人公司

title:

  • 类型:字符串
  • 描述:(可选项)联系人职位

address:

  • 类型:JSON 对象
  • 描述:(可选项)联系人地址
  • 内部字段:
  1. {
  2. City: '', //(可选项)字符串类型;城市;
  3. Country: '', //(可选项)字符串类型;国家;
  4. State: '', //(可选项)字符串类型;省份;
  5. Street: '', //(可选项)字符串类型;街道;
  6. ZIP: '' //(可选项)字符串类型;邮编;
  7. }

note:

  • 类型:字符串
  • 描述:(可选项)联系人备注

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 0 //数字类型;
  3. //错误码:
  4. -1:(用户未授权本应用访问通讯录)
  5. 0:(更新成功)
  6. 1:(联系人 id 不存在)
  7. }

示例代码

  1. var contacts = api.require('contacts');
  2. contacts.update({
  3. id: 1,
  4. lastName: '李',
  5. firstName: '四',
  6. middleName: 'Cloud',
  7. prefix: 'API',
  8. suffix: '柚子',
  9. phones: [{
  10. '住宅': '12345678'
  11. },{
  12. '工作': '87654321'
  13. }],
  14. email: 'zhengcuan@api.com',
  15. company: '柚子科技',
  16. title: '工程师',
  17. address: {
  18. Country: '中国',
  19. State: '北京',
  20. City: '北京市',
  21. Street: '鸟巢街',
  22. ZIP: '100000'
  23. },
  24. note: '无'
  25. }, function(ret, err){
  26. if( ret ){
  27. alert( JSON.stringify( ret ) );
  28. }else{
  29. alert( JSON.stringify( err ) );
  30. }
  31. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

move

根据 id 移动联系人至指定分组

move({params}, callback(ret, err))

params

id:

  • 类型:数字
  • 描述:联系人 id

groupId:

  • 类型:数字
  • 描述:联系人的分组 id;若分组不存在则不移动分组

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 0 //数字类型;
  3. //错误码:
  4. -1:(用户未授权本应用访问通讯录)
  5. 0:(移动成功)
  6. 1:(联系人 id 不存在)
  7. 2:(所传分组 id 不存在)
  8. }

示例代码

  1. var contacts = api.require('contacts');
  2. contacts.move({
  3. id: 10,
  4. groupId: 20
  5. }, function(ret, err){
  6. if( ret ){
  7. alert( JSON.stringify( ret ) );
  8. }else{
  9. alert( JSON.stringify( err ) );
  10. }
  11. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

query

根据联系人 id 查找联系人

query({params}, callback(ret, err))

params

ids:

  • 类型:数组
  • 描述:联系人 id 组成的数组,若 id 不存在则不处理

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. contacts: [{
  4. id: 1, //数字类型;联系人的 id
  5. lastName: '', //字符串类型;联系人姓氏,若该联系人此信息缺少则本字段为undefine
  6. firstName: '', //字符串类型;联系人名字,若该联系人此信息缺少则本字段为undefine
  7. middleName: '', //字符串类型;联系人中间名,若该联系人此信息缺少则本字段为undefine
  8. prefix: '', //字符串类型;名称前缀,若该联系人此信息缺少则本字段为undefine
  9. suffix: '', //字符串类型;名称后缀,若该联系人此信息缺少则本字段为undefine
  10. fullName: '', //字符串类型;联系人全名,若该联系人此信息缺少则本字段为undefine
  11. phones: [{'工作', '123'}], //数组类型;联系人电话组成的数组
  12. //内部字段:[{"标签":"号码"}]
  13. email: '', //字符串类型;邮箱
  14. company: '', //字符串类型;公司
  15. title: '', //字符串类型;职位
  16. address: {
  17. City: '', //字符串类型;城市
  18. Country: '', //字符串类型;国家
  19. State: '', //字符串类型;省份
  20. Street: '', //字符串类型;街道
  21. ZIP: '' //字符串类型;邮编
  22. },
  23. note: '', //字符串类型;备注
  24. groupId: 1, //数字类型;联系人所属分组的 id
  25. groupName: '' //字符串类型;所在分组的名字
  26. }]
  27. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 0 //数字类型;
  3. //错误码:
  4. -1:(用户未授权本应用访问通讯录,Android 平台忽略此错误码)
  5. 0:(获取成功)
  6. }

示例代码

  1. var contacts = api.require('contacts');
  2. contacts.query({
  3. ids: [1, 2]
  4. }, function(ret, err){
  5. if( ret ){
  6. alert( JSON.stringify( ret ) );
  7. }else{
  8. alert( JSON.stringify( err ) );
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

queryByKeyword

根据关键字从通讯录查找联系人

queryByKeyword({params}, callback(ret, err))

params

keyword:

  • 类型:字符串
  • 描述:要查询的关键字 注意:仅搜索 lastName 和 firstName 包含的关键字

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. contacts: [{
  4. id: 1, //数字类型;联系人的 id
  5. lastName: '', //字符串类型;联系人姓氏,若该联系人此信息缺少则本字段为undefine
  6. firstName: '', //字符串类型;联系人名字,若该联系人此信息缺少则本字段为undefine
  7. middleName: '', //字符串类型;联系人中间名,若该联系人此信息缺少则本字段为undefine
  8. prefix: '', //字符串类型;名称前缀,若该联系人此信息缺少则本字段为undefine
  9. suffix: '', //字符串类型;名称后缀,若该联系人此信息缺少则本字段为undefine
  10. fullName: '', //字符串类型;联系人全名,若该联系人此信息缺少则本字段为undefine
  11. phones: [{'工作', '123'}], //数组类型;联系人电话组成的数组
  12. //内部字段:[{"标签":"号码"}]
  13. email: '', //字符串类型;邮箱
  14. company: '', //字符串类型;公司
  15. title: '', //字符串类型;职位
  16. address: {
  17. City: '', //字符串类型;城市
  18. Country: '', //字符串类型;国家
  19. State: '', //字符串类型;省份
  20. Street: '', //字符串类型;街道
  21. ZIP: '' //字符串类型;邮编
  22. },
  23. note: '', //字符串类型;备注
  24. groupId: 1, //数字类型;联系人在通讯录所属分组的 id
  25. groupName: '' //字符串类型;所在分组的名字
  26. }]
  27. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 0 //数字类型;
  3. //错误码:
  4. -1:(用户未授权本应用访问通讯录,Android 平台忽略此错误码)
  5. 0:(获取成功)
  6. }

示例代码

  1. var contacts = api.require('contacts');
  2. contacts.queryByKeyword({
  3. keyword: '孙'
  4. }, function(ret, err){
  5. if( ret ){
  6. alert( JSON.stringify( ret ) );
  7. }else{
  8. alert( JSON.stringify( err ) );
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

queryByPage

根据页码查找指定数量的联系人

queryByPage({params}, callback(ret, err))

params

count:

  • 类型:数字
  • 描述:(可选项)每页联系人的数量,若不传则返回全部联系人,不建议不传本参数

pageIndex:

  • 类型:数字
  • 描述:(可选项)联系人的分页索引
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. total: 100, //数字类型;联系人的总数
  4. pages: 10, //数字类型;联系人总页数
  5. contacts: [{
  6. id: 1, //数字类型;联系人的 id
  7. lastName: '', //字符串类型;联系人姓氏,若该联系人此信息缺少则本字段为undefine
  8. firstName: '', //字符串类型;联系人名字,若该联系人此信息缺少则本字段为undefine
  9. middleName: '', //字符串类型;联系人中间名,若该联系人此信息缺少则本字段为undefine
  10. prefix: '', //字符串类型;名称前缀,若该联系人此信息缺少则本字段为undefine
  11. suffix: '', //字符串类型;名称后缀,若该联系人此信息缺少则本字段为undefine
  12. fullName: '', //字符串类型;联系人全名,若该联系人此信息缺少则本字段为undefine
  13. phones: [{'工作', '123'}], //数组类型;联系人电话组成的数组
  14. //内部字段:[{"标签":"号码"}]
  15. email: '', //字符串类型;邮箱
  16. company: '', //字符串类型;公司
  17. title: '', //字符串类型;职位
  18. address: {
  19. City: '', //字符串类型;城市
  20. Country: '', //字符串类型;国家
  21. State: '', //字符串类型;省份
  22. Street: '', //字符串类型;街道
  23. ZIP: '' //字符串类型;邮编
  24. },
  25. note: '', //字符串类型;备注
  26. groupId: 1, //数字类型;联系人所属分组的 id
  27. groupName: '' //字符串类型;所在分组的名字
  28. }]
  29. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 0 //数字类型;
  3. //错误码:
  4. -1:(用户未授权本应用访问通讯录,Android 平台忽略此错误码)
  5. 0:(获取成功)
  6. }

示例代码

  1. var contacts = api.require('contacts');
  2. contacts.queryByPage({
  3. count: 20,
  4. pageIndex: 0
  5. }, function(ret, err){
  6. if( ret ){
  7. alert( JSON.stringify( ret ) );
  8. }else{
  9. alert( JSON.stringify( err ) );
  10. }
  11. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

createGroup

创建分组

createGroup({params}, callback(ret, err))

params

groupName:

  • 类型:字符串
  • 描述:分组名

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. groupId: 1 //创建成功返回的分组 id
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 0 //数字类型;
  3. //错误码:
  4. -1:(用户未授权本应用访问通讯录,Android 平台忽略此错误码)
  5. 0:(创建成功)
  6. }

示例代码

  1. var contacts = api.require('contacts');
  2. contacts.createGroup({
  3. groupName: '同学'
  4. }, function(ret, err){
  5. if( ret ){
  6. alert( JSON.stringify( ret ) );
  7. }else{
  8. alert( JSON.stringify( err ) );
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

deleteGroup

删除分组,只删除分组,不删除其中的联系人

deleteGroup({params}, callback(ret, err))

params

groupId:

  • 类型:数字
  • 描述:分组 id

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 0 //数字类型;
  3. //错误码:
  4. -1:(用户未授权本应用访问通讯录,Android 平台忽略此错误码)
  5. 0:(删除成功)
  6. 1:(分组不存在)
  7. }

示例代码

  1. var contacts = api.require('contacts');
  2. contacts.deleteGroup({
  3. groupId: 1
  4. }, function(ret, err){
  5. if( ret ){
  6. alert( JSON.stringify( ret ) );
  7. }else{
  8. alert( JSON.stringify( err ) );
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

queryGroups

获取所有分组信息

queryGroups(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. groups: [{
  4. name: '', //字符串类型;分组名
  5. id: 1 //数字类型;分组 id
  6. }]
  7. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 0 //数字类型;
  3. //错误码:
  4. -1:(用户未授权本应用访问通讯录,Android 平台忽略此错误码)
  5. 0:(获取成功)
  6. }

示例代码

  1. var contacts = api.require('contacts');
  2. contacts.queryGroups(function( ret, err ){
  3. if( ret ){
  4. alert( JSON.stringify( ret ) );
  5. }else{
  6. alert( JSON.stringify( err ) );
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

queryByGroupId

根据分组 id 查找联系人

queryByGroupId({params}, callback(ret, err))

params

groupId:

  • 类型:数字
  • 描述:(可选项)要查找的分组 id

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. groups: [{
  4. id: 1, //数字类型;联系人的 id
  5. lastName: '', //字符串类型;联系人姓氏,若该联系人此信息缺少则本字段为undefine
  6. firstName: '', //字符串类型;联系人名字,若该联系人此信息缺少则本字段为undefine
  7. middleName: '', //字符串类型;联系人中间名,若该联系人此信息缺少则本字段为undefine
  8. prefix: '', //字符串类型;名称前缀,若该联系人此信息缺少则本字段为undefine
  9. suffix: '', //字符串类型;名称后缀,若该联系人此信息缺少则本字段为undefine
  10. fullName: '', //字符串类型;联系人全名,若该联系人此信息缺少则本字段为undefine
  11. phones: [{'工作', '123'}], //数组类型;联系人电话组成的数组
  12. //内部字段:[{"标签":"号码"}]
  13. email: '', //字符串类型;邮箱
  14. company: '', //字符串类型;公司
  15. title: '', //字符串类型;职位
  16. address: {
  17. City: '', //字符串类型;城市
  18. Country: '', //字符串类型;国家
  19. State: '', //字符串类型;省份
  20. Street: '', //字符串类型;街道
  21. ZIP: '' //字符串类型;邮编
  22. },
  23. note: '', //字符串类型;备注
  24. groupId: 1, //数字类型;联系人在通讯录所属分组的 id
  25. groupName: '' //字符串类型;所在分组的名字
  26. }]
  27. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: 0 //数字类型;
  3. //错误码:
  4. -1:(用户未授权本应用访问通讯录,Android 平台忽略此错误码)
  5. 0:(获取成功)
  6. 1:(分组不存在)
  7. }

示例代码

  1. var contacts = api.require('contacts');
  2. contacts.queryByGroupId({
  3. groupId: 1
  4. },function(ret,err){
  5. if( ret ){
  6. alert( JSON.stringify( ret ) );
  7. }else{
  8. alert( JSON.stringify( err ) );
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本