gpt4 book ai didi

ios - 如何处理有很多返回值的 UIApplication handleOpenURL?

转载 作者:行者123 更新时间:2023-11-28 22:23:18 29 4
gpt4 key购买 nike

我在使用 AppDelegate 中的函数时遇到问题

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

很多库必须在这个函数中放置一些返回码来进行配置。像这样:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
//facebook
//attempt to extract a token from the url
return [FBAppCall handleOpenURL:url
sourceApplication:sourceApplication
fallbackHandler:^(FBAppCall *call) {
NSLog(@"In fallback handler");
}];

//library
BOOL urlHasBeenHandledByDispatcher = [[GRKConnectorsDispatcher sharedInstance] dispatchURLToConnectingServiceConnector:url];
if ( urlHasBeenHandledByDispatcher ) return YES;
return NO;

//facebookSession
return [FBSession.activeSession handleOpenURL:url];
}

在这种情况下如何配置才能使所有库正常工作?

最佳答案

您应该只更改代码并返回一次值。试试下面的代码:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
//facebook
//attempt to extract a token from the url
BOOL result = NO;
result |= [FBAppCall handleOpenURL:url
sourceApplication:sourceApplication
fallbackHandler:^(FBAppCall *call) {
NSLog(@"In fallback handler");
}];

//library
result |= [[GRKConnectorsDispatcher sharedInstance] dispatchURLToConnectingServiceConnector:url];
//facebookSession
result |= [FBSession.activeSession handleOpenURL:url];
return result;
}

如果至少有一个库返回YES,此方法将返回YES,否则返回NO

关于ios - 如何处理有很多返回值的 UIApplication handleOpenURL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19702790/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com