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

标签 ios facebook-login url-scheme login-control google-signin

我已经看到了描述这些事情的示例和堆栈溢出问题。

问题是,

如果我在 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 类,如下图所示,并在获得应用程序 ID 的 URL 登录时添加通知中心。 enter image description here

然后,(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]);
}

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

关于ios - 如何使用 URL 方案在应用程序内打开社交应用程序登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32518167/

相关文章:

ios - 是否可以从另一个应用程序向 ipod 应用程序播放歌曲?

ios - 如何通过 url scheme 打开 iGo

android - connectSDK 在 iOS 中没有友好名称

iOS WKWebview : Always allow camera permission

ios - Swift FBSDK 问题 - 某些用户的 Facebook ID 为零

iphone - 如何在 iOS 中发送 NTLM 请求

java - Facebook SDK 中的 R.Java 与应用程序 R.java 发生冲突

ios - 如何在 ios 6 中编写 SLComposeViewController 之前检查用户是否在 iphone 设置中输入了他的 facebook 详细信息

javascript - channel 网址

html - mailto HTML 最佳实践