Android cordova contacts插件联系人数据正在复制而不是覆盖联系人数据
我的应用程序中有一个功能,可以通过在线用户数据库检查用户的联系人。如果用户设备中的任何联系人具有帐户,则该帐户中的数据将在设备上更新 该功能可以处理姓名和出生日期等信息,但电子邮件和电话号码不会覆盖现有的联系人数据,而是为这些信息创建新条目 此特定用户应该只有一个电子邮件地址和一个电话号码 JSON响应和保存Android cordova contacts插件联系人数据正在复制而不是覆盖联系人数据,android,ios,cordova,contacts,cordova-plugins,Android,Ios,Cordova,Contacts,Cordova Plugins,我的应用程序中有一个功能,可以通过在线用户数据库检查用户的联系人。如果用户设备中的任何联系人具有帐户,则该帐户中的数据将在设备上更新 该功能可以处理姓名和出生日期等信息,但电子邮件和电话号码不会覆盖现有的联系人数据,而是为这些信息创建新条目 此特定用户应该只有一个电子邮件地址和一个电话号码 JSON响应和保存 var contacts = json.contacts; for(var x = 0; x < contacts.length; x++){ var user = con
var contacts = json.contacts;
for(var x = 0; x < contacts.length; x++){
var user = contacts[x];
//console.log(user);
//get old contact by id
//Set the options for finding conact
var options = new ContactFindOptions();
options.filter = user.id; //name that you want to search
options.multiple = false;
var fields = ["id","displayName"];
navigator.contacts.find(fields, function(c){
c = c[0];
var dob = user.iceTV.dob.split(':');
c.displayName = user.iceTV.f_name + " " + user.iceTV.l_name;
c.nickname = user.iceTV.f_name + " " + user.iceTV.l_name;
c.birthday = new Date(dob[2], dob[1] - 1, dob[0]);
c.name.givenName = user.iceTV.f_name;
c.name.familyName = user.iceTV.l_name;
c.name.formatted = user.iceTV.f_name + " " + user.iceTV.l_name;
if(c.emails == null){
c.emails = [];
}
for(var a = 0; a < user.emails; a++){
c.emails[a] = { value : user.emails[a] };
}
if(c.phoneNumbers == null){
c.phoneNumbers = [];
}
c.phoneNumbers[0] = {type : 'mobile', value: user.iceTV.number};
if(user.pp == null){
c.photos = null;
} else {
contacts.photos[0] = {
pref : false,
type : 'url',
value : user.iceTV.pp
};
}
c.save(function(saveSuccess) {
console.log('User updated' ,c);
}, function(saveError){
console.log("Error when updating");
});
}, function (e){
makeToast("Error = " + e.code);
}, options);
}
var contacts=json.contacts;
对于(变量x=0;x
我也遇到了同样的问题,通过在电话号码中添加一个id
来解决。对于示例代码,您必须更改的行如下所示:
c.phoneNumbers[0] = {type : 'mobile', value: user.iceTV.number, id: 0};
但是:这只修复了重复。当您在数据库中删除电话号码时,它不会在联系人中删除。有关更多详细信息,请参阅