首页 > 解决方案 > iOS:objective-C、facebook 和 twitter 实现

问题描述

你如何结合这两个功能?如果我像这样运行它,我会在 Xcode 上得到它error: duplicate declaration of method 'application:openURL:options:'。这个想法是实现 facebook 和 twitter 登录按钮。

// Twitter
- (BOOL)application:(UIApplication *)application 
            openURL:(NSURL *)url 
            options:(NSDictionary<NSString *,id> *)options {
  return [[Twitter sharedInstance] application:app openURL:Url options:options];
}

// Facebook
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {

  BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
                                                                openURL:url
                                                      sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
                                                             annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
                  ];
  // Add any custom logic here.
  return handled;
}

标签: iosobjective-c

解决方案


- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {

  BOOL handledByFacebook = [[FBSDKApplicationDelegate sharedInstance] application:application
                                                                          openURL:url
                                                                sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
                                                                       annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];

  BOOL handledByTwitter = [[Twitter sharedInstance] application:application
                                                        openURL:url
                                                        options:options]; 

  return handledByFacebook || handledByTwitter;
}

推荐阅读