我正在使用以下代码使用 phonegap 将联系人保存在设备中。我想在所有联系人成功保存后执行某些操作。但是 save() 方法是异步的,所以我无法知道何时保存了所有联系人。
是否可以不更改 save() 方法?
如果没有,那么 save() 方法需要进行哪些更改?
for (var i = 0; i < allContacts.length; i++) {
var obj = eval(allContacts[i]);
var contact = navigator.contacts.create(obj);
contact.save();
}
在此先感谢 Yogesh Patel
我对上面的代码进行了更改
我已经编写了用于使用 Phonegap 在 Iphone 中恢复多个联系人的代码。我想在所有联系人恢复成功后执行某些操作。如果我将联系人数量增加到大约 1000 个附近,那么它的工作正常,如果联系人数量接近 400,那么它会跳过一些(10 到 15 个)联系人。每次我恢复时,我都会得到不同的跳过联系人。并且对于跳过联系人,不调用 fail() 函数。接下来我该怎么办?我需要更改cordova js中的保存方法吗?
下面是我的代码:
function storeContacttodevice(json1,callback) {
var temp=0;
var json2 = json1.split(';');
for(var kl=0;kl<json2.length;kl++){
var jsonparsecontact=JSON.parse(json2[kl]);
var myContact = navigator.contacts.create(jsonparsecontact);
myContact.save(function onSuccess(contact){
var mssg="Restoring contacts to your device " + temp + " Out
Of " + json2.length;
$.mobile.showPageLoadingMsg( "b", mssg, false );
if(temp == json2.length - 1) {
return callback();
}
temp++;
} ,
function onError(contactError){
alert("Error in saving contacts");
return callback();
}
);
}
}
在此先感谢 Yogesh Patel