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

iOS9: canOpenURL returning false for WhatApp's 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 隐私政策? 谁能帮帮我?

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

例如:

因此在您的情况下,您必须指定 whatsapp.

而不是 fbtwitter

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

步骤:1 在 Info.plist

中添加 LSApplicationQueriesSchemes

步骤:2 在项目中添加 whatsapp

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

    <dict>
        ... 

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

对我来说,问题是因为我使用的是 URL 类型 而不是 LSApplicationQueriesSchemes

它仅适用于 LSApplicationQueriesSchemes

这将不起作用

这将工作