检查用户是否安装了Facebook Messenger的iOS 9

Facebook已经弃用了用于检查用户是否安装了Messenger应用程序的方法[FBSDKMessengerSharer messengerPlatformCapabilities] 。 在警告消息中,它说:

不推荐使用messengerPlatformCapabilities:从iOS 9开始不推荐使用。如果使用此选项,则必须按照https://developers.facebook.com/docs/ios/ios9中的说明configurationplist

我想删除这个方法,但还没有find任何其他的select来replace这个代码(如果用户没有安装Messenger应用程序,那么这个button会被禁用):

 if (![FBSDKMessengerSharer messengerPlatformCapabilities]) { [self.inviteFriendsButton setEnabled:NO]; [self.inviteFriendsButton setAlpha:0.5f]; } 

有没有其他方法? 或者,作为新的iOS要求,我应该避免使用这个if ? 先谢谢你。

您将需要使用canOpenURL来查看自定义URL计划fb-messenger://可以打开。 canOpenURL返回一个BOOL值,指示URL的scheme是否可以被设备上安装的某个应用程序处理。 如果canOpenURL返回YES则应用程序出现在设备上。

 if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"fb-messenger://"]]) { // Installed [self.inviteFriendsButton setEnabled:YES]; [self.inviteFriendsButton setAlpha:1.0]; } else { // NOT Installed [self.inviteFriendsButton setEnabled:NO]; [self.inviteFriendsButton setAlpha:0.5]; } 

另外,从iOS 9开始,您必须在您的info.plist包含LSApplicationQueriesSchemes

在这里输入图像说明

自Facebook SDK v4.6.0发布以来,他们使用fb-messenger-api作为他们的URLscheme。

Swift 2.3

 if UIApplication.sharedApplication().canOpenURL(NSURL(string: "fb-messenger-api://")!) { // Installed } else { // Not installed } 

来源: https : //developers.facebook.com/docs/ios/ios9

对于那些使用Swift 3的人来说 ,使用这个:

 UIApplication.shared.canOpenURL(URL(string: "fb-messenger-api://")!) 

在我的情况下,我需要知道是否显示一个button,用户可以按下信使共享内容。 这适用于我的情况,它也检查是否安装了Messenger应用程序。

 -(BOOL) canShareViaMessenger { [[[FBSDKMessageDialog alloc] init] canShow] } 
Interesting Posts