phonegap入门--10 Contacts

在手机我们会访问手机的通讯录,这个时候需要使用phonegap提供的Contacts对象.

Contacts有两个方法create、find,估计大家一看就知道了,一个是创建联系人、一个是查找联系人。

create方法返回一个Contact对象,Contact对象下面再介绍。

var myContact = navigator.contacts.create({"displayName": "Test User"});

find方法:
navigator.contacts.find(contactFields, contactSuccess, contactError, contactFindOptions);
查询设备通讯录数据库,并返回包含指定字段的一个或多个Contact对象。

下面写一个例子代码,但是我在三星pad上测试,删除的时候总是出错,还希望大家测试一下。

<!DOCTYPE html>
<html>
  <head>
    <title>Contact Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova-2.6.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    document.addEventListener("deviceready", onDeviceReady, false);

    function onDeviceReady() {
        // create
        var contact = navigator.contacts.create();
        contact.displayName = "Plumber";
        contact.nickname = "Plumber";       //specify both to support all devices
        var name = new ContactName();
        name.givenName = "Jane";
        name.familyName = "Doe";
        contact.name = name;

        // save
        contact.save(onSaveSuccess,onSaveError);

        // clone
        var clone = contact.clone();
        clone.name.givenName = "John";
        console.log("Original contact name = " + contact.name.givenName);
        console.log("Cloned contact name = " + clone.name.givenName); 

        // remove  测试的时候总是这里报错
        contact.remove(onRemoveSuccess,onRemoveError);
    }

    function onSaveSuccess(contact) {
        alert("Save Success");
    }

    function onSaveError(contactError) {
        alert("save Error = " + contactError.code);
    }

    function onRemoveSuccess(contacts) {
        alert("Removal Success");
    }

    function onRemoveError(contactError) {
        alert("Remove Error = " + contactError.code);
    }

    </script>
  </head>
  <body>
    <h1>Example</h1>
    <p>Find Contacts</p>
  </body>
</html>


这里首先介绍一下Contact对象.

属性:
id:全局唯一标识符。(DOMString类型)
displayname:联系人显示名称,适合向最终用户展示的联系人名称。(DOMString类型)
name:联系人姓名所有部分的对象。(CantactName类型)
nickname:昵称,对联系人的非正式称呼。(DOMString类型)
phoneNumbers:联系人所有联系电话的数组。(ContactField[]类型)
emails:联系人所有email地址的数组。(ContactField[]类型)
addrsses:联系人所有联系地址的数组。(ContactAddresses[]类型)
ims:联系人所有IM地址的数组。(ContactField[]类型)
organizations:联系人所属所有组织的数组。(ContactOrganization[]类型)
birthday:联系人的生日。(日期类型)
note:联系人的注释信息。(DOMString类型)
photos:联系人所有照片的数组.(ContactField[]类型)
categories:联系人所属的所有用户自定义类别的数组。(ContactField[]类型)
urls:与联系人相关网页的数组。(ContactField[]类型)
方法:
clone:返回一个新的Contact对象,它是调用对象的深度拷贝,其id属性被设为null。
remove:从通讯录数据库中删除联系人。当删除不成功的时候,触发以ContactError对象为参数的错误处理回调函数。
save:将一个新联系人存储到通讯录数据库,如果通讯录数据库中已经包含与其ID相同的记录,则更新该已有记录。

在Contact中的name属性是一个ContactName类型的对象,在Contact开发的过程还会使用其他的对象就不详细介绍了,大家可以查看官方文档,下面列出一些关联的对象

Contact
ContactName
ContactField
ContactAddress
ContactOrganization
ContactFindOptions
ContactError

再介绍一下find方法的两个属性:contactFields 、contactFindOptions 

contactFields 
contacts.find方法的必填参数,该参数定义了查找操作返回的Contact对象中应该包含哪些字段。

contactFindOptions 
contats.find方法的可选参数,通过该参数从通讯录数据库中筛选联系人。

写的不好,别拍砖啊。


你可能感兴趣的:(phonegap入门--10 Contacts)