2015-09-22 15 views
6

Facebookは、ユーザーがメッセンジャーアプリがインストールされているかどうかを確認するために使用される方法[FBSDKMessengerSharer messengerPlatformCapabilities]は非推奨になりました。警告メッセージでは、それは言う:チェックiOSの9

messengerPlatformCapabilitiesが廃止されました:私はしたいと思いますhttps://developers.facebook.com/docs/ios/ios9

で説明したようにこれは、あなたがこれを使用する場合は、あなたがあなたのplistを設定する必要がありiOSの9のよう推奨されていませんこのメソッドを削除しますが、(そのユーザーがメッセンジャーアプリがインストールされていない場合は無効になり、ボタンを作る)このコードを置き換えるために、他のオプションを発見していない:

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

は、他の方法はありますか?または、新しいiOS要件として、これを使用しないでください。if?前もって感謝します。

答えて

12

あなたはカスタムURLスキームfb-messenger://を開くことができるかどうかを確認するためにcanOpenURLを使用したいと思うでしょう。 canOpenURLはURLのスキームは、デバイスにインストールされたいくつかのアプリケーションが扱うことができるか否かを示すBOOL値を返します。 canOpenURLYESを返した場合、アプリケーションはデバイス上に存在します。

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.plistLSApplicationQueriesSchemesを含める必要があります。彼らは彼らのURLスキームとしてfb-messenger-api使いのFacebook SDKのv4.6.0のリリース以来

enter image description here

2

スウィフト2.3

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

出典:スウィフト3を使用してそれらのためにhttps://developers.facebook.com/docs/ios/ios9

0

、この使用:私はボタンを表示するかどうかを知るために必要な私の場合は

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

をユーザーはメッセンジャーでコンテンツを共有するために押すことができます。これは私の場合に役立ち、メッセンジャーアプリがインストールされているかどうかもチェックします。

-(BOOL) canShareViaMessenger { 
    [[[FBSDKMessageDialog alloc] init] canShow] 
} 
関連する問題