Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
2.0.0
-
None
-
iOS 9.3
Description
Short demo script:
navigator.contacts.find(["*"], function (contacts) { // Pick a contact // (Make sure the contact has more than two phoneNumberFields) var myContact = contacts[4]; // Remove the second phone number delete myContact.phoneNumbers[1]; myContact.save(function () { console.log("Success"); /// You will see, that the contact still has all it's previous phone numbers }, function () { console.error("error while saving"); }); }, function () { console.error("Could not access conacts."); });
Let's say a existing contact that I've retrieved from the system has two or more phone number fields. When I remove one of the both contact fields from the phoneNumbers array and then save the contact, it still has all numbers on the device. When I re-retrieve the contact it has both numbers again. (Tested on iOS 9.3 with plugin version 2.0.1)
I can't find any hint in the documentation if I do something wrong or if the plugin is behaving wrong.
I have created a demo script, which reproduces the issue. You can use it for testing:
http://pastebin.com/XRdREL3Y
You might want to remove line 25 which removes the contact in the end.
This SO Question might be related to the issue: http://stackoverflow.com/questions/35698798/cordova-contacts-plugin-contact-data-is-duplicating-instead-of-overwriting-conta?rq=1