iOS9: canOpenURL returning false for WhatApp's url scheme
Solution 1
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:
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.
Solution 2
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>
Mayank Jain
iOS App Developer, Android App Developer, Mobile App Developer, Front End Developer, Full Stack Developer, React Native Developer #SOReadytoHelp Linkedin Facebook Email: [email protected] Skype: live:ermayankjain
Updated on July 10, 2022Comments
-
Mayank Jain almost 2 years
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?
-
z22 over 8 years@MayankModi Glad to help :)
-
Juan Fran Jimenez over 7 yearsFor the lazy ones: here is the code for your plist (add it at the end of the main dict node):
<key>LSApplicationQueriesSchemes</key> <array> <string>whatsapp</string> </array>