【发布时间】: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 格式:
<string>fb-messenger-api</string> -
@DonMag 是的,就是这样。它不是信使,而是 fb-messenger。谢谢你们!
-
@Whirlwind - 我将其发布为答案,以便遇到您问题的其他人会看到解决方案...
标签: ios facebook-messenger info.plist uiapplication