反应本机Twitter登录冲突fb和google登录iOS

反应本机Twitter登录冲突fb和google登录iOS,ios,objective-c,react-native,twitter-oauth,Ios,Objective C,React Native,Twitter Oauth,我知道这个问题,但我没有Objective C和iOS本机开发的经验 我有两个方法同名参数不同 //function 1 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [[FBSDKApplicationDelegate

我知道这个问题,但我没有Objective C和iOS本机开发的经验

我有两个方法同名参数不同

//function 1
    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation  {



  return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                        openURL:url
                                              sourceApplication:sourceApplication
                                                     annotation:annotation
          ]
  || [RNGoogleSignin application:application
                         openURL:url
               sourceApplication:sourceApplication
                      annotation:annotation
      ];
  }
}


//function 2
    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
        return [[Twitter sharedInstance] application:application openURL:url options:options];
      }
//函数1
-(BOOL)应用程序:(UIApplication*)应用程序openURL:(NSURL*)url源应用程序:(NSString*)源应用程序注释:(id)注释{
return[[FBSDKApplicationDelegate sharedInstance]应用程序:应用程序
openURL:url
sourceApplication:sourceApplication
注释:注释
]
||[RNGoogleSignin应用程序:应用程序
openURL:url
sourceApplication:sourceApplication
注释:注释
];
}
}
//职能2
-(BOOL)应用程序:(UIApplication*)应用程序openURL:(NSURL*)url选项:(NSDictionary*)选项{
return[[Twitter sharedInstance]应用程序:应用程序openURL:url选项:选项];
}
如果我这样定义两者,那么重定向后的所有oauth请求都会转到函数2。如果我尝试将两者结合起来,那么twitter不起作用twitter只在函数2格式上起作用

//combine function 3
    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation options:(NSDictionary<NSString *,id> *)options  {

  NSString *stringurl = url.absoluteString;
  NSString *sub = @"twitterkit";
  NSRange range = [stringurl  rangeOfString: sub options: NSCaseInsensitiveSearch];
  if (range.location != NSNotFound){
    return [[Twitter sharedInstance] application:application openURL:url options:options];
  }
  else{
  return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                        openURL:url
                                              sourceApplication:sourceApplication
                                                     annotation:annotation
          ]
  || [RNGoogleSignin application:application
                         openURL:url
               sourceApplication:sourceApplication
                      annotation:annotation
      ];
  }
}
//组合函数3
-(BOOL)应用程序:(UIApplication*)应用程序openURL:(NSURL*)url源应用程序:(NSString*)源应用程序注释:(id)注释选项:(NSDictionary*)选项{
NSString*stringurl=url.absoluteString;
NSString*sub=@“twitterkit”;
NSRange range=[stringurl rangeOfString:子选项:NSCaseInsensitiveSearch];
if(range.location!=NSNotFound){
return[[Twitter sharedInstance]应用程序:应用程序openURL:url选项:选项];
}
否则{
return[[FBSDKApplicationDelegate sharedInstance]应用程序:应用程序
openURL:url
sourceApplication:sourceApplication
注释:注释
]
||[RNGoogleSignin应用程序:应用程序
openURL:url
sourceApplication:sourceApplication
注释:注释
];
}
}
我无法为函数2添加额外参数以支持google或fb登录

如何通过函数重载处理所有请求,但如何处理?

我找到了解决方案

我合并它们

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
    NSString *stringurl = url.absoluteString;
    NSString *sub = @"twitterkit";
    NSRange range = [stringurl  rangeOfString: sub options: NSCaseInsensitiveSearch];
    if (range.location != NSNotFound){
    return [[Twitter sharedInstance] application:application openURL:url options:options];
    }
    else{
      BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey] annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
                      ] || [RNGoogleSignin application:application
                                               openURL:url
                                     sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
                                            annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
                            ];;
      return handled;
    }
  }
-(BOOL)应用程序:(UIApplication*)应用程序openURL:(NSURL*)url选项:(NSDictionary*)选项{
NSString*stringurl=url.absoluteString;
NSString*sub=@“twitterkit”;
NSRange range=[stringurl rangeOfString:子选项:NSCaseInsensitiveSearch];
if(range.location!=NSNotFound){
return[[Twitter sharedInstance]应用程序:应用程序openURL:url选项:选项];
}
否则{
BOOL handled=[[FBSDKApplicationDelegate sharedInstance]应用程序:应用程序openURL:url源应用程序:选项[UIApplicationOpenUrlOptionSourceApplicationKey]注释:选项[UIApplicationOpenUrlOptionAnnotationKey]
]| |[RNGoogleSignin应用程序:应用程序
openURL:url
sourceApplication:options[UIApplicationOpenUrlOptions SourceApplicationKey]
注释:选项[UIApplicationOpenUrlOptions注释键]
];;
处理退货;
}
}
附言。 我正在使用以下库

反应本机fbsdk

我找到了解决办法

我合并它们

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
    NSString *stringurl = url.absoluteString;
    NSString *sub = @"twitterkit";
    NSRange range = [stringurl  rangeOfString: sub options: NSCaseInsensitiveSearch];
    if (range.location != NSNotFound){
    return [[Twitter sharedInstance] application:application openURL:url options:options];
    }
    else{
      BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey] annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
                      ] || [RNGoogleSignin application:application
                                               openURL:url
                                     sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
                                            annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
                            ];;
      return handled;
    }
  }
-(BOOL)应用程序:(UIApplication*)应用程序openURL:(NSURL*)url选项:(NSDictionary*)选项{
NSString*stringurl=url.absoluteString;
NSString*sub=@“twitterkit”;
NSRange range=[stringurl rangeOfString:子选项:NSCaseInsensitiveSearch];
if(range.location!=NSNotFound){
return[[Twitter sharedInstance]应用程序:应用程序openURL:url选项:选项];
}
否则{
BOOL handled=[[FBSDKApplicationDelegate sharedInstance]应用程序:应用程序openURL:url源应用程序:选项[UIApplicationOpenUrlOptionSourceApplicationKey]注释:选项[UIApplicationOpenUrlOptionAnnotationKey]
]| |[RNGoogleSignin应用程序:应用程序
openURL:url
sourceApplication:options[UIApplicationOpenUrlOptions SourceApplicationKey]
注释:选项[UIApplicationOpenUrlOptions注释键]
];;
处理退货;
}
}
附言。 我正在使用以下库

反应本机fbsdk


您可以这样组合它们:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
    BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey] annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
                    ] || [RNGoogleSignin application:application
                                             openURL:url
                                   sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
                                          annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
                          ]
                      || [[Twitter sharedInstance] application:application openURL:url options:options];
    return handled;
}
-(BOOL)应用程序:(UIApplication*)应用程序openURL:(NSURL*)url选项:(NSDictionary*)选项{
BOOL handled=[[FBSDKApplicationDelegate sharedInstance]应用程序:应用程序openURL:url源应用程序:选项[UIApplicationOpenUrlOptionSourceApplicationKey]注释:选项[UIApplicationOpenUrlOptionAnnotationKey]
]| |[RNGoogleSignin应用程序:应用程序
openURL:url
sourceApplication:options[UIApplicationOpenUrlOptions SourceApplicationKey]
注释:选项[UIApplicationOpenUrlOptions注释键]
]
||[[Twitter sharedInstance]应用程序:应用程序openURL:url选项:选项];
处理退货;
}
我正在使用:


,和

您可以这样组合它们:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
    BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey] annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
                    ] || [RNGoogleSignin application:application
                                             openURL:url
                                   sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
                                          annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
                          ]
                      || [[Twitter sharedInstance] application:application openURL:url options:options];
    return handled;
}
-(BOOL)应用程序:(UIApplication*)应用程序openURL:(NSURL*)url选项:(NSDictionary*)选项{
BOOL handled=[[FBSDKApplicationDelegate shar