检查用户是否安装了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] }