如何列出BlackBerry-10联系人列表中的所有联系人?

时间:2012-12-24 02:33:51

标签: html5 blackberry-webworks blackberry-10

我正在为黑莓10创建一个短信聊天应用程序。所以我希望列表列出黑莓数据库中的所有联系人并将其列入用户,以便用户可以轻松地轻松选择收件人的手机号码。有什么方法可以使用html5 / webworks。我只想把所有联系人的姓名和手机号码都放到一个数组或类似的东西。任何人都可以帮忙? 提前谢谢。

https://developer.blackberry.com/html5/apis/blackberry.pim.contacts.contact.html

1 个答案:

答案 0 :(得分:1)

BB10严格UI guidelines。你可以用两种方法做到这一点。您可以调用现有的本机联系人列表“卡”或直接调用查找API。

要调用联系人列表卡,请使用invokeContactPicker调用模式。 完整的示例代码位于黑莓开发者网站https://developer.blackberry.com/html5/apis/blackberry.pim.contacts.html#.invokeContactPicker上,但以下是调用单个选择卡的重要摘要(您可以调用单个,多个和属性选择):

function onCancel() {
    alert("User pressed cancel in contact picker.");
}

function onInvoke(error) {
    if (error) {
       alert("Error invoking contact picker: " + error.code);
    } else {
       alert("Contact picker invoked!");
    }
}

function onContactSelected(data) {
   var contact = contacts.getContact(data.contactId);
   if (contact) {
      alert("Contact id #" + contactId + " corresponds to '" + contact.name.givenName + " " + contact.name.familyName +"'.");
   } else {
      alert("There is no contact with id: " + contactId);
   }

}

function onContactsSelected(data) {
    alert("Total # contacts selected: " + data.contactIds.length);
}
function invokeContactPickerSingle() {
    contacts.invokeContactPicker({
        mode: ContactPickerOptions.MODE_SINGLE,
        fields: ["phoneNumbers"]
    }, onContactSelected, onCancel, onInvoke);
}

要收集联系人并直接处理,请使用blackberry.pim.contacts.find API。 完整示例代码位于黑莓网站上,此处为:https://developer.blackberry.com/html5/apis/blackberry.pim.contacts.html#.find,但以下是相关代码的摘要:

function listAllContacts() {
    var sort = [{
             "fieldName": ContactFindOptions.SORT_FIELD_FAMILY_NAME,
             "desc": false
        }, {
             "fieldName": ContactFindOptions.SORT_FIELD_GIVEN_NAME,
             "desc": true
        }],
        // no filter - return all contacts
        findOptions = { 
             // sort contacts first by family name (desc), then by given name (asc)
             sort: sort,  
             limit: -1 // limit - all contacts returned
        };
    contacts.find(["name"], findOptions, onFindSuccess, onFindError);
}
function onFindSuccess(results) {
    console.log("Found " + results.length + " contacts in total");
}

function onFindError(error) {
    console.log("Error: " + error.code);
}

请告诉我这是否有帮助!