反应本机Twitter登录冲突fb和google登录iOS
我知道这个问题,但我没有Objective C和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
//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