gpt4 book ai didi

ios - 如何处理具有多个 URL 的 UIApplication handleOpenURL

转载 作者:IT王子 更新时间:2023-10-29 08:00:09 25 4
gpt4 key购买 nike

我有一个将使用 Facebook 和 Instagram API 的应用程序,这两个 API 都要求我使用此委托(delegate)方法:

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

return [PFFacebookUtils handleOpenURL:url];

}

这是 instagram 提供的代码:

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

return [self.instagram handleOpenURL:url];

}

如您所见,这是一个问题,因为我只能返回一个 URL 处理程序,但我需要能够决定是哪一个。

在我的应用委托(delegate)中,我已经注释掉上面的 Instagram 选项,只留下 Facebook。正如预期的那样,Facebook 可以正常工作,但是当我在 Instagram 上点击授权时出现此错误:

Instagram URL error

显然,Facebook 正在尝试处理来自 Instagram 的返回 URL,因此它会出错。

是否可以检查 URL 以查看它是否包含我正在尝试的每项服务的应用程序 ID?因此,如果 URL 包含 instagram ID,则返回 instagram 处理程序,如果它包含 Facebook ID,则返回 Facebook 处理程序。

任何帮助都会很棒,谢谢!

最佳答案

Facebook 和 Instagram 都让您为其服务设置了自定义 URL 方案,因此我们将使用它来过滤 URL。

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

if ([[url scheme] isEqualToString:INSTAGRAM_SCHEME])
return [self.instagram handleOpenURL:url];

if ([[url scheme] isEqualToString:FACEBOOK_SCHEME])
return [PFFacebookUtils handleOpenURL:url];

return NO;

}

将变量定义为

#define INSTAGRAM_SCHEME @"ig12345678910"
#define FACEBOOK_SCHEME @"fb12345678910"

与您在 Info.plist 文件中所做的完全一样

关于ios - 如何处理具有多个 URL 的 UIApplication handleOpenURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20848913/

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