【问题标题】:canOpenURL always return false even if I specify Launch Service Keys即使我指定启动服务密钥 canOpenURL 始终返回 false
【发布时间】:2017-11-01 12:48:42
【问题描述】:

我正在尝试检测是否安装了特定应用程序,根据文档,canOpenURL 方法可能会有所帮助。我也在 iOS 11 上,根据文档,对于 > iOS 9,请记住这一点:

重要如果您的应用在 iOS 9.0 或之后链接,您必须声明 您要传递给此方法的 URL 方案。通过添加 应用程序 Info.plist 文件的 LSApplicationQueriesSchemes 键。如果你 为未使用该键声明的方案调用此方法,此方法 无论是否安装了适当的应用程序,总是返回 false。 要了解有关密钥的更多信息,请参阅 LSApplicationQueriesSchemes。

意味着在Info.plist 中,我应该添加如下内容:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>messenger</string>
</array>

到目前为止,一切都很好。但是当我尝试检测是否安装了应用程序时,如下所示:

if( [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"messenger://"]]){}

我还是错了……我在这里错过了什么?

【问题讨论】:

  • 您确定messenger 是有效的方案吗?
  • messenger 是否安装在您的设备中
  • 如果您尝试检测/打开 Facebook Messenger,您可能需要使用 Scheme 格式:&lt;string&gt;fb-messenger-api&lt;/string&gt;
  • @DonMag 是的,就是这样。它不是信使,而是 fb-messenger。谢谢你们!
  • @Whirlwind - 我将其发布为答案,以便遇到您问题的其他人会看到解决方案...

标签: ios facebook-messenger info.plist uiapplication


【解决方案1】:

Facebook Messenger 使用:

<string>fb-messenger-api</string>

作为它的 URL Scheme。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多