iOS9: canOpenURL returning false for WhatApp's url scheme

Mayank Jain picture Mayank Jain · Dec 17, 2015 · Viewed 10.1k times · Source

In my current project I need to share text on whatsapp from iOS app.

Here is my code to share text on whatsapp:

NSURL *whatsappURL = [NSURL URLWithString:@"whatsapp://send?text=Hello%2C%20World!"];
if ([[UIApplication sharedApplication] canOpenURL: whatsappURL]) {
    [[UIApplication sharedApplication] openURL: whatsappURL];
}

but canOpenURL always returning false in iOS9.

Is there any iOS9 privacy policy? Can anyone help me out?

Answer

z22 picture z22 · Dec 17, 2015

In iOS 9 you must whitelist any URL schemes your App wants to query in Info.plist under the LSApplicationQueriesSchemes key (an array of strings):

For example:

enter image description here

So in your case, instead of fb and twitter you will have to specify whatsapp.

Note that this mechanism only applies to canOpenURL and not openURL. You do not need to have a scheme listed in Info.plist to be able to open it with openURL. Hope that helps.