Как открыть вход в социальное приложение в приложении, используя схему URL


Я видел примеры и вопросы переполнения стека, которые описывают эти вещи.

Проблема в том,

Apple отклоняет приложение, если я открываю социальный логин в safari.

большинство примеров связаны с открытием социального входа в safari, но не совсем так, как я хочу.

Я хочу использовать Facebook SDK и открыть всплывающее окно входа в приложение.

Я думаю, что это может быть достигнуто с помощью обработки схемы URL, но я не знаю, как это сделать.

I видели, что Facebook предоставляет FBSDKLoginBehaviorWeb (спасибо @Anbu.Karthik для Уведоми меня об этом)

Но другие приложения, такие как Google, Instagram, Twitter, Linked In и другие, также должны интегрироваться в приложение. Поэтому было бы лучше, если есть какое-либо общее поведение приложения, которое перенаправляет URL-адрес, чтобы открыть в Webview в приложении.

Спасибо заранее,

1 2

1 ответ:

Да, вы правы,вам нужно немного настроить обработку схемы URL.

Вот пример кода

В основном вам нужно добавить класс Principle UIApplication .pList файл как изображение ниже и добавить Центр уведомлений, когда вы получаете url login для вашего идентификатора приложения. Введите описание изображения здесь

И чем, (приложение.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]);
}

Вы можете изменить этот пример, чтобы получить другие социальные логины в вашем приложении.