Есть ли способ скрыть Back to Safari из строки состояния в iOS9?

Как программно скрыть это ‹ Вернуться в Safari из строки состояния?

введите здесь описание изображения

Я получаю это в своем приложении — когда я выхожу из своего приложения, если пользователь хочет войти в систему со своей учетной записью Facebook.

Вот сценарий, для которого мне не нравится (хочу) «Назад в Safari» в моем приложении.

  1. При первом запуске приложения (и пользователь не авторизовался).
  2. Пользователь выбирает вариант «Войти через Facebook».
  3. На сцену выходит Facebook iOS SDK, он переносит меня в Safari.
  4. Я залогинился и вернулся в приложение
  5. Но есть «Назад в сафари»… Его здесь больше не должно быть.

person Hemang    schedule 06.07.2015    source источник
comment
Лучше не задавайте вопросы по бета-версии ОС здесь, а на форуме Apple Beta. сообщение здесь - forums.developer.apple.com/community/pre -релиз/ios-9-бета   -  person Tushar    schedule 06.07.2015
comment
Это не вопрос, связанный с ошибкой. Мне нужен ответ, можем ли мы скрыть это программно или что-то в этом роде? Потому что, как только я закрою (удалю) браузер Safari, это сообщение будет удалено. Но я не хочу такого поведения, так как не хочу, чтобы мой пользователь возвращался в Safari.   -  person Hemang    schedule 07.07.2015
comment
Удачи в поиске решения?   -  person Easwaramoorthy K    schedule 05.10.2015
comment
@EaswaramoorthyK, Нет, еще нет.   -  person Hemang    schedule 05.10.2015


Ответы (2)


Нет, API, который позволяет это сделать, отсутствует.

person Zia    schedule 07.07.2015
comment
Можем ли мы хотя бы отменить действие? - person Easwaramoorthy K; 05.10.2015
comment
Отлично, у меня есть логика с открытием другого приложения и возвратом к моему, и эта кнопка портит всю мою логику - я не понимаю, почему ее можно отключить? - person new2ios; 21.10.2015
comment
Я не могу найти никакой документации для этого. Я не думаю, что мы можем коснуться его вообще. - person Zia; 22.01.2016

Вы можете добиться этого, перенаправив на веб-сайт с переадресацией обратно в ваше приложение. Следующие шаги позволяют скрыть «Назад в Safari» в строке состояния, MyApp — это имя примера приложения:

  1. Добавьте схему URL вашего приложения в Info.plist

    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>myapp</string>
    </array>
    
  2. Настройте собственный URL-адрес для переадресации на веб-сайте (например, http://example.com/myapp)

    _redirect_rule_from /myapp
    _redirect_rule_to myapp://
    
  3. В закрытии вашего метода авторизации нажмите форвард, который вы создали на шаге 2.

    - (void)willLoginWithFacebook
    {
       __weak __typeof(self) weakSelf = self;
    
       [self.view setUserInteractionEnabled:NO];
       [self.sessionManager authenticateViaFacebookWithCompletion:^(NSString *token, NSSet *grantedPermissions,
        NSError *error) {
    
    if (error) {
        if (error.code != myappErrorCodeCancelled) {
            [weakSelf.rootViewController presentError:error];
        }
    }
    else {
        [weakSelf authorizeWithFacebookToken:token];
        NSString *customURL = @"myapp://";
    
        if ([[UIApplication sharedApplication]
             canOpenURL:[NSURL URLWithString:customURL]])
        {
            NSString *stringURL = @"http://example.com/myapp";
            NSURL *url = [NSURL URLWithString:stringURL];
            [[UIApplication sharedApplication] openURL:url];
        }
        else
        {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"URL error"
                                                            message:[NSString stringWithFormat:
                                                                     @"No custom URL defined for %@", customURL]
                                                           delegate:self cancelButtonTitle:@"Ok" 
                                                  otherButtonTitles:nil];
            [alert show];
        }
       };
    
     }];
    
    }
    
person Tr0yJ    schedule 04.12.2015