如何使用 URL 方案在应用程序中打开社交应用程序登录

How to Open Social App Login within application using URL Scheme

我看过描述这件事的示例和堆栈溢出问题。

问题是,

如果我在 safari 中打开社交登录,Apple 会拒绝申请。

大多数示例都与使用 safari 打开社交登录有关,但不是我想要的。

我想使用 Facebook SDK 并在应用程序中打开登录弹出窗口。

我认为这可以使用 URL 方案处理来实现,但我不知道该怎么做。

我看到 Facebook 提供 FBSDKLoginBehaviorWeb(感谢@Anbu.Karthik 通知我这件事)

但是 Google、Instagram、Twitter、Linked In 等其他应用也需要在应用内集成。 因此,如果有任何应用程序的一般行为会重定向 URL 以在应用程序内的 Webview 中打开会更好。

在此先致谢,

是的,你是对的,你需要自定义URL方案处理。

Here is example code

基本上你需要在 .pList 文件中添加 Principle UIApplication class 如下图,并在你的应用程序 ID URL 登录时添加通知中心。

然后,(Application.m)

- (BOOL)openURL:(NSURL*)url {
    if ([[url absoluteString] hasPrefix:@"https://m.facebook.com/v2.2/dialog/oauth?sdk_version="]) {
        [[NSNotificationCenter defaultCenter] postNotificationName:ApplicationAuthNotificationFB object:url];

        return NO;
    }
    return [super openURL:url];
}

和 在 ViewController、(ViewController.m)

中注册通知
[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(callLoginPopup:)
                                                 name:@"ApplicationAuthNotificationFB"
                                               object:nil];

处理方法URL (ViewController.m)

-(void)callLoginPopup:(NSNotification *)notif{
    NSLog(@"URL To Handle ===> %@", [notif object]);
}

您可以修改此示例以在您的应用中实现其他社交登录。