微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在iOS(Facebook和Instagram)中处理不同的URL方案

我甚至不确定如何定义问题,但在这里它.

我有一个使用Facebook SDK进行用户登录的应用程序.我按照Facebook授权教程.我不是100%确定它是如何工作的但是我的“AppDelegate.m”中的这一部分似乎很重要.

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

    return [FBSession.activeSession handleOpenURL:url];
}

到现在为止还挺好.现在我想为instagram实现类似的登录,以便用户可以访问他们的照片.我运行这个例子没有问题(https://github.com/crino/instagram-ios-sdk).当我试图将它导入我的项目时,我陷入困境.因为在instagram项目中AppDelegate中还有一个函数(IGAppDelegate)

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

    return [self.instagram handleOpenURL:url];
}

现在我不能使用这个功能(因为它是Facebook的副本)
有没有办法将这两个功能组合为facebook和instagram(对于不同的URL可能带有“if”).或者我输了

PS:我注意到当我打电话给我的facebook登录应用程序时,网址就像是

fb4333597123414933://授权/#=的access_token&BAAGKI2vHLxUBANbDegkrdoc4GJWUZC2clqLAzxz8IxEBZBdEyjrD2oTaGZA0g2AbSGWgvEhONKM6xJWzLCALGUBguqUpor6kXu9ZBewusNZCUe6BoxYvX放大器; expires_in = 5166254

在Instagram中它就像:

igfd725621c5e44198a5b8ad3f7a0ffa09://authorize#access_token=354172840.fd72562.bf6b3611632d4d00b6cef660ea9d9b6f

解决方法

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(Nsstring *)sourceApplication annotation:(id)annotation
    {
        NSLog(@"url: %@",[url scheme]);

        BOOL callBack;
        // Facebook Call back checking.
        if ([[url scheme] isEqualToString:@"facebook_url_schema"])
        {
            callBack = [FBAppCall handleOpenURL:url sourceApplication:sourceApplication];
        }
        // Instagram call back checking.
        else if ([[url scheme] isEqualToString:@"instagram_url_schema"])
        {
            callBack = [self.instagram handleOpenURL:url];
        }
        return callBack;![enter image description here][1]
    }

原文地址:https://www.jb51.cc/iOS/330917.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐