0
我正在使用下面的代碼在設備中使用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();
}
在此先感謝 約傑什帕特爾
我在上面的代碼
我寫的代碼在iPhone與PhoneGap的恢復多個聯繫人做出改變。我想在所有聯繫人恢復成功後執行某些操作。它的工作正常,如果沒有聯繫人接近400左右,如果我增加約1000附近的聯繫人,然後跳過一些(10到15)的聯繫人。每當我恢復時,我會得到不同的跳過聯繫人。而對於跳過聯繫人失敗()函數不會被調用。接下來我應該做什麼?我需要更改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();
}
);
}
}
在此先感謝 約傑什帕特爾
感謝您的回覆,我以這種方式嘗試了它的工作,如果沒有任何聯繫人接近400,如果我增加了沒有聯繫人到1000然後跳過一些(接近10到15),並滑雪沒有每個恢復時間的聯繫人都不相同。我的意思是如果某些聯繫人沒有被恢復,失敗功能不會被調用? –