iOS9: canOpenURL returning false for WhatApp's url scheme

匿名 (未验证) 提交于 2019-12-03 02:20:02

问题:

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.

Thanks in advance.

回答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.



回答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> 


回答3:

Step:1 Add LSApplicationQueriesSchemes in Info.plist

Step:2 Add whatsapp in items



回答4:

For me the issue was because I was using URL types instead of LSApplicationQueriesSchemes

and it work only for LSApplicationQueriesSchemes

This will not work

This will work



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!