簡體   English   中英

保存Cordova聯系人插件后獲取contact.id

[英]Getting contact.id after saving Cordova contact plugin

保存后,我需要取回聯系人ID,以便將其保存到我的在線數據庫中。 但是,cordova contact.save()方法在執行后不會返回ID。

這是我的邏輯:

 if ($scope.contact.id === undefined) { contact.save(); console.log("Contact ID is:", savedContact.id); table.insert({ id: contact.id.value, firstname: name.givenName, lastname: name.familyName, homephone: phoneNumbers[0].value, mobilephone: phoneNumbers[1].value, email: emails[0].value }); } 

這是行不通的。

有什么方法可以檢索聯系人的ID,而不必使用這樣的電話號碼來搜索電話聯系人列表:

 if ($scope.contact.id === undefined) { contact.save(); var savedContact = navigator.contacts.find({ "phoneNumbers[0]": phoneNumbers[0].value }); console.log("Contact ID is:", savedContact.id); table.insert({ id: contact.id.value, firstname: name.givenName, lastname: name.familyName, homephone: phoneNumbers[0].value, mobilephone: phoneNumbers[1].value, email: emails[0].value }); } 

上面的方法似乎開銷太大。 更不用說它甚至不能返回正確的聯系人,因為電話號碼可能不是唯一的。(如果有人用不同的信息兩次保存了聯系人)

contact.save()可以接受兩個回調,成功和失敗。 成功回調應返回您新保存的聯系人(其中包括ID)。

if ($scope.contact.id === undefined) {
  contact.save(contactSuccess, contactFailure);  
}

function contactSuccess(newContact) {
  console.log("Contact ID is:", newContact.id);
  table.insert({ id: contact.id.value, firstname: name.givenName, lastname: name.familyName, homephone: phoneNumbers[0].value, mobilephone: phoneNumbers[1].value, email: emails[0].value });
}

function contactError(err) {
  //bb10 fires multiple error callbacks with empty errors
  if (err) {
    console.log(err);   
  }
}

由於您似乎正在使用Angular,因此請檢查ngCordova項目。 它為一些插件提供了一些不錯的包裝器,使所有內容都更具可讀性。 這是他們的聯系文檔的相關摘錄:

$cordovaContacts.save($scope.contactForm).then(function(savedContact) {
  console.log("Contact ID is:", newContact.id);
  table.insert({ id: contact.id.value, firstname: name.givenName, lastname: name.familyName, homephone: phoneNumbers[0].value, mobilephone: phoneNumbers[1].value, email: emails[0].value });
}, function(err) {
  if (err) {
    console.log(err);   
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM