检查用户是否安装了 Facebook Messenger iOS 9
Check if user has Facebook Messenger installed iOS 9
Facebook 已弃用用于检查用户是否安装了 Messenger 应用程序的方法 [FBSDKMessengerSharer messengerPlatformCapabilities]
。在警告消息中,它说:
messengerPlatformCapabilities is deprecated: This is deprecated as of iOS 9. If you use this, you must configure your plist as described in https://developers.facebook.com/docs/ios/ios9
我想删除此方法,但还没有找到任何其他选项来替换此代码(如果用户未安装 Messenger 应用程序,该按钮将被禁用):
if (![FBSDKMessengerSharer messengerPlatformCapabilities]) {
[self.inviteFriendsButton setEnabled:NO];
[self.inviteFriendsButton setAlpha:0.5f];
}
还有其他方法吗?或者,作为新的 iOS 要求,我应该避免使用这个 if
?先感谢您。
你会想用canOpenURL
看看自定义URL方案fb-messenger://
是否可以打开。 canOpenURL
returns 一个 BOOL
值,指示 URL 的方案是否可以由安装在设备上的某些应用程序处理。如果 canOpenURL
returns 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
作为他们的 URL 方案。
Swift 2.3
if UIApplication.sharedApplication().canOpenURL(NSURL(string: "fb-messenger-api://")!) {
// Installed
} else {
// Not installed
}
对于使用 Swift 3 的用户,请使用:
UIApplication.shared.canOpenURL(URL(string: "fb-messenger-api://")!)
在我的例子中,我需要知道是否显示一个按钮,用户可以按下该按钮在 Messenger 上共享内容。这适用于我的情况,它还会检查是否安装了 Messenger 应用程序。
-(BOOL) canShareViaMessenger {
[[[FBSDKMessageDialog alloc] init] canShow]
}
Facebook 已弃用用于检查用户是否安装了 Messenger 应用程序的方法 [FBSDKMessengerSharer messengerPlatformCapabilities]
。在警告消息中,它说:
messengerPlatformCapabilities is deprecated: This is deprecated as of iOS 9. If you use this, you must configure your plist as described in https://developers.facebook.com/docs/ios/ios9
我想删除此方法,但还没有找到任何其他选项来替换此代码(如果用户未安装 Messenger 应用程序,该按钮将被禁用):
if (![FBSDKMessengerSharer messengerPlatformCapabilities]) {
[self.inviteFriendsButton setEnabled:NO];
[self.inviteFriendsButton setAlpha:0.5f];
}
还有其他方法吗?或者,作为新的 iOS 要求,我应该避免使用这个 if
?先感谢您。
你会想用canOpenURL
看看自定义URL方案fb-messenger://
是否可以打开。 canOpenURL
returns 一个 BOOL
值,指示 URL 的方案是否可以由安装在设备上的某些应用程序处理。如果 canOpenURL
returns 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
作为他们的 URL 方案。
Swift 2.3
if UIApplication.sharedApplication().canOpenURL(NSURL(string: "fb-messenger-api://")!) {
// Installed
} else {
// Not installed
}
对于使用 Swift 3 的用户,请使用:
UIApplication.shared.canOpenURL(URL(string: "fb-messenger-api://")!)
在我的例子中,我需要知道是否显示一个按钮,用户可以按下该按钮在 Messenger 上共享内容。这适用于我的情况,它还会检查是否安装了 Messenger 应用程序。
-(BOOL) canShareViaMessenger {
[[[FBSDKMessageDialog alloc] init] canShow]
}