iOS9:canOpenURL为WhatApp的url方案返回false

May*_*ain 11 objective-c url-scheme ios whatsapp ios9

在我目前的项目中,我需要在iOS应用程序上分享whatsapp上的文本.

这是我在whatsapp上分享文字的代码: -

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

但是在iOS9中,canOpenURL总是返回false.

有iOS9隐私政策吗?谁能帮我吗.

提前致谢.

z22*_*z22 49

在iOS 9中,您必须将您的应用程序想要在LSApplicationQueriesSchemes键(字符串数组)下的Info.plist中查询的任何URL方案列入白名单:

例如:

在此输入图像描述

所以你的情况,而不是fbtwitter你将有指定whatsapp.

请注意,此机制仅适用于canOpenURL而不适用于openURL.您不需要在Info.plist中列出一个方案就可以使用openURL打开它.希望有所帮助.

  • 对于懒惰的:这是plist的代码(在主dict节点的末尾添加它):`<key> LSApplicationQueriesSchemes </ key> <array> <string> whatsapp </ string> </ array>` (4认同)

noe*_*cus 5

除了@z22的答案之外,如果您需要以文本方式添加它(例如使用Xamarin),那么它看起来像这样:

    <dict>
        ... 

        <key>LSApplicationQueriesSchemes</key>
        <array>
            <string>whatsapp</string>
        </array>
    </dict>
Run Code Online (Sandbox Code Playgroud)