В моем приложении для iPhone я хочу, чтобы пользователь мог поделиться ссылкой на Facebook.
Когда они нажимают «поделиться», я использую следующий код для входа в Facebook с помощью нового SDK 3.1, затем использую FBRequestConnection
в обработчике завершения (простой publish_action
).
[FBSession openActiveSessionWithPublishPermissions:@[@"publish_actions"] defaultAudience:FBSessionDefaultAudienceFriends allowLoginUI:true completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
// Now call FBRequestConnection to post in the stream
}];
Когда у пользователя установлено приложение Facebook, оно просто делегирует вход в приложение. Однако, когда они этого не делают, он открывает страницу входа в WebView.
В iOS 5 он открывает Mobile Safari:
Моя проблема в iOS 6, я получаю тот же поток, но вместо этого в модальном всплывающем окне (поверх моего приложения).
У меня есть 2 проблемы с всплывающим окном:
<сильный>1. Закрытие
Его нельзя отменить или отменить. Для сравнения, приложение HelloFacebookSample из SDK имеет такое же всплывающее окно, но с крестообразной кнопкой для его закрытия.
ПРИМЕЧАНИЕ. Теперь проблема решена благодаря ravi. Мне не хватало пакета ресурсов Facebook, который содержит изображение «закрыть».
<сильный>2. Принятие разрешений
На втором шаге всплывающего окна (см. экраны выше) нажатие ОК ничего не делает. Нажатие «X» вызывает обработчик завершения с ошибкой, и это здорово, но ничего не происходит с Хорошо. Это правильный способ входа в Facebook с помощью SDK 3.1? Мне не хватает обратного вызова, чтобы конкретно отреагировать на всплывающее окно?
Еще несколько уточнений:
Это происходит только в iOS6, когда приложение Facebook не установлено и учетная запись Facebook не настроена в настройках iOS.
Спасибо!