2014/11/19

[iOS][Objective-C]Google plus SDKとFacebook SDKを共存させる

Google plus SDKもFacebook SDKもともにログインする時に下記のメソッドにお世話になります。

- (BOOL)application: (UIApplication *)application openURL: (NSURL *)url sourceApplication: (NSString *)sourceApplication annotation: (id)annotation
Googleの場合
- (BOOL)application: (UIApplication *)application
            openURL: (NSURL *)url
  sourceApplication: (NSString *)sourceApplication
         annotation: (id)annotation {
 return [GPPURLHandler handleURL:url
               sourceApplication:sourceApplication
                      annotation:annotation];
}
Facebookの場合
- (BOOL)application:(UIApplication *)application
            openURL: (NSURL *)url
  sourceApplication: (NSString *)sourceApplication
         annotation: (id)annotation {

        BOOL wasHandled = [FBAppCall handleOpenURL:url sourceApplication:sourceApplication];
        return wasHandled;
}
でもろどかぶりしているので、どうすればいいのかなーっと検索していたら、Handling openURL: with Facebook and Googleというエントリーを発見して、下記のようにすれば問題なく解決することができました。
- (BOOL)application:(UIApplication *)application
            openURL: (NSURL *)url
  sourceApplication: (NSString *)sourceApplication
         annotation: (id)annotation {
    if ([[url absoluteString] rangeOfString:@""].location == NSNotFound){
        BOOL wasHandled = [FBAppCall handleOpenURL:url sourceApplication:sourceApplication];
        return wasHandled;
    }else{
        return [GPPURLHandler handleURL:url sourceApplication:sourceApplication annotation:annotation];
    }
}

0 コメント:

コメントを投稿