我已经看到了描述这些事情的示例和堆栈溢出问题。
问题是,
如果我在 safari 中打开社交登录,Apple 会拒绝申请。
大多数示例都与使用 safari 打开社交登录相关,但并不完全是我想要的方式。
我想在应用程序中使用 Facebook SDK 和打开登录弹出窗口。
我认为这可以使用 URL 方案处理来实现,但我不知道如何做到这一点。
我已经看到 Facebook 提供 FBSDKLoginBehaviorWeb(感谢@Anbu.Karthik 通知我这件事)
但其他应用程序,如 Google、Instagram、Twitter、Linked In 等也需要集成到应用程序内。 因此,如果应用程序有任何一般行为将 URL 重定向到应用程序内的 Webview 中打开,那就更好了。
提前致谢,
最佳答案
是的,你是对的,你需要自定义一些 URL 方案处理。
基本上,您需要在 .pList 文件中添加 Principle UIApplication 类,如下图所示,并在获得应用程序 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]);
}
您可以修改此示例以在您的应用中实现其他社交登录。
关于ios - 如何使用 URL 方案在应用程序内打开社交应用程序登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32518167/