FBSessionLoginBehaviorWithNoFallbackToWebView открывает сафари, если приложение не установлено

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

  1. Учетная запись, хранящаяся в настройках (через Accounts Framework)
  2. Переключение на приложение Facebook
  3. Отображение моего собственного UIWebView внутри приложения (и отправка запросов вручную)

Если один метод не работает, я хочу перейти к следующему.

Проблема у меня в том, что

[self.fbsession openWithBehavior:FBSessionLoginBehaviorForcingWebView 
               completionHandler:

открывает Safari или показывает всплывающее окно, которое я не могу настроить.

Мне абсолютно необходимо следовать этому порядку, потому что я использую веб-просмотр для других социальных сетей (например, Twitter, LinkedIn и GooglePlus).

Есть ли способ вручную открыть приложение Facebook для потока Oauth?


person Lescai Ionel    schedule 20.11.2013    source источник
comment
Со 2 октября 2013 г. собственные приложения для iOS и Android не должны использовать собственные веб-представления для входа через Facebook. См. developers.facebook.com/roadmap/completed-changes.   -  person Ming Li    schedule 20.11.2013
comment
хм... спасибо за ссылку, я понятия не имел об этом. Но я думаю, что я справился с этим, так как я позволил им использовать учетную запись на устройстве и приложение facebook. Но если у них нет ни того, ни другого (потому что они живут под камнем), могу ли я использовать свое собственное веб-представление?   -  person Lescai Ionel    schedule 20.11.2013
comment
Я почти уверен, что ответ на этот вопрос все еще нет. Речь идет о предоставлении единообразного опыта пользователям Facebook во всех приложениях. Если приложения решат использовать собственное веб-представление с украшениями, это подорвет доверие пользователей и сделает их более уязвимыми для будущих взломов социальной инженерии.   -  person Ming Li    schedule 21.11.2013
comment
Итак, предпочтительным методом было бы открыть Safari, если у пользователя нет приложения Facebook?   -  person Lescai Ionel    schedule 21.11.2013
comment
Предпочтительный метод — разрешить Facebook SDK обрабатывать резервную логику.   -  person Ming Li    schedule 21.11.2013


Ответы (1)


Чтобы вручную проверить, установлено ли приложение Facebook, вы можете использовать:

[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"fb://requests"]]
person Lescai Ionel    schedule 21.11.2013