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

时间:2015-12-17 08:12:01

标签: ios objective-c ios9 whatsapp url-scheme

在我目前的项目中,我需要在iOS应用中分享whatsapp上的文字。

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

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

canOpenURL 在iOS9中始终返回false。

有iOS9隐私政策吗? 任何人都可以帮助我。

提前致谢。

4 个答案:

答案 0 :(得分:49)

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

例如:

enter image description here

因此,在您的情况下,您必须指定fb而不是twitterwhatsapp

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

答案 1 :(得分:3)

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

    <dict>
        ... 

        <key>LSApplicationQueriesSchemes</key>
        <array>
            <string>whatsapp</string>
        </array>
    </dict>

答案 2 :(得分:0)

步骤:1在Info.plist中添加LSApplicationQueriesSchemes

步骤:2在项目中添加whatsapp

答案 3 :(得分:0)

对我来说问题是因为我使用网址类型而不是 LSApplicationQueriesSchemes

并且它仅适用于 LSApplicationQueriesSchemes

这将无效

URL types

这将工作

LSApplicationQueriesSchemes