【问题标题】:How does facebook app link work without declaring LSApplicationQueriesSchemes?facebook 应用程序链接如何在不声明 LSApplicationQueriesSchemes 的情况下工作?
【发布时间】:2016-09-17 15:42:33
【问题描述】:

在 iOS 9 应用程序不能使用canOpenURL 来检查应用程序是否安装。

如果您的(iOS 9.0 或更高版本)应用使用您的方案调用此方法 尚未声明,该方法返回 false,无论是否 设备上安装了适用于该方案的应用程序。

但我想知道如果未安装应用程序,facebook 应用程序如何成功将用户引导到应用商店,或者如果已安装,则打开目标应用程序!

facebook 无法列出 LSApplicationQueriesSchemes 中的所有应用!

谢谢

【问题讨论】:

  • 可能是苹果制造的一个例外,因为苹果在设置应用程序中专门提供了 Facebook 设置选项。但是你的应用程序需要这个。我的意思是你实际上想要达到什么目标?

标签: ios ios9 url-scheme


【解决方案1】:

来自canOpenURL:documentation

与此方法不同,openURL: 方法不受 UIDefaultLaunchStoryboard 要求:如果应用程序处理方案 安装在设备上,openURL: 方法有效,无论是 不是你已经声明了这个方案。

所以,他们做了以下事情:

1) 尝试使用符合 fb 的 url 调用 openURL:,例如 fb[app-id]://authorize...,直到它返回 true(我已经检查过了,他们调用了很多 url,例如 fb[app-id]litefb[app-id]macfb[app-id]paidfb[app-id]green 等)。如果成功,目标应用程序将打开。

2) 如果调用openURL: 没有成功,他们会尝试使用http://itunes.apple.com/app/... url 调用canOpenURL:,然后使用相同的url 调用openURL:。用户被重定向到 App Store。

【讨论】:

    猜你喜欢
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 2013-10-15
    • 2013-03-02
    相关资源
    最近更新 更多