iOS9: canOpenURL returning false for WhatApp's url scheme

南楼画角 提交于 2019-11-29 17:53:23

问题


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



来源:https://stackoverflow.com/questions/34329595/ios9-canopenurl-returning-false-for-whatapps-url-scheme

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