Refresh Whatsapp contacts programmatically

I am making a function in iOS where I am adding a new contact to a user's address book programmatically, which is all going fine. The next step is to send that new contact a message via Whatsapp, which is not very hard either. The purpose is to directly show the chat screen with the new contact. The problem is however that Whatsapp does sync it's contacts now and then. I am using the following intent for Whatsapp:

var whatsappUrl = (NSURL(string:"whatsapp://send?text=\(encodedmessage)&abid=\(id)"))      

Where the message is an encoded string and the id is the id from the freshly added contact. When my program opens Whatsapp with that method, everything is going fine when the contact was already in the address book. When that contact is newly added, the Whatsapp screen will not go directly to that screen. Instead it will show the picker for all the contacts.

Long story short, I want to refresh Whatsapp's contacts using my code, in order to send the user directly to the Whatsapp chat screen of the new contact instead of the contact picker screen, which is because Whatsapp's contacts are not synced yet with the new contact.


It is recommended that you should not interact with other 3rd party apps unless they provide a handle to interact. Which is already given by whatsapp as openurl scheme.

In case you have the contact that is removed or added you should address the issue first in your app so it doesn't/does initiate the action to open App before evening checking with wahtsapp.

You can use a great library that APAddressBook to do the contact add and modified check.