Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS9: canOpenURL returning false for WhatApp's url scheme

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?

like image 790
Mayank Jain Avatar asked Dec 17 '15 08:12

Mayank Jain


2 Answers

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.

like image 189
z22 Avatar answered Nov 15 '22 20:11

z22


In addition to @z22's answer if you need to add it textually (e.g. with Xamarin) then it looks like this:

    <dict>
        ... 

        <key>LSApplicationQueriesSchemes</key>
        <array>
            <string>whatsapp</string>
        </array>
    </dict>
like image 25
noelicus Avatar answered Nov 15 '22 22:11

noelicus