Есть ли способ получить какую-то обратную связь от нового FBLikeControl, если пользователю понравилась страница? Или, по крайней мере, как-то знать, что он вернулся в приложение из приложения Facebook?FBLikeControl callback
ответ
Update:
Так Facebook, по-видимому сделал этот заголовок частным, теперь вы должны подписаться непосредственно на уведомление, используя необработанную строку:
[[NSNotificationCenter defaultCenter] addObserver:myObject selector:@selector(myCallback:) name:@"FBLikeActionControllerDidUpdateNotification"];
Старый ответ для справки:
Для тех, кто в будущем ищет это: я закончил подписку на уведомления FBLikeActionControllerDidUpdateNotification. После получения уведомления вы можете сделать следующее:
if ([notification.object isKindOfClass:[FBLikeActionController class]]) {
if ([(FBLikeActionController*)notification.object objectIsLiked]) {
// do your stuff here, user liked!
}
}
Извините, не могли бы вы показать мне какой-то ресурс о том, как подписаться на 'FBLikeActionControllerDidUpdateNotification', как в вашем ответе, потому что я не могу найти ничего, кроме некоторой ссылки github –
просто сделать [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector (notificationReceived :) name: FBLikeActionControllerDidUpdateNotification object: nil]; Также убедитесь, что импортировали #import
Большое спасибо, вы спасли мои дни :) –
Если вы хотите узнать, изменил ли пользователь состояние кнопки (то есть, если оно было неактивным и вам понравилось), как это было в моем случае, вы можете добавить [likeButton addTarget:self action:@selector(yourCallbackFunction:) forControlEvents:UIControlEventValueChanged];
, а yourCallbackFuntion:
будет вызываться, когда состояние как кнопка меняется.
Я надеюсь, что это помогает
Это хорошая идея, но есть, если я ничего не пропущу, в FBLikeControl (подкласс UIControl) нет ничего, чтобы указать, понравилось ли это или нет. –
Да, вы правы. Я не могу проверить, понравилось это или нет, но в моем случае мне нужно было только знать, изменил ли пользователь состояние. Ответ Тима правильный для его случая. –
UIControlEventTouchUpInside работает лучше, чем UIControlEventValueChanged! – thatzprem
Поскольку FBLikeActionController.h частный заголовок, вы можете обойти это путем прослушивания уведомлений строки:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(facebookLikeNotification:) name:@"FBLikeActionControllerDidUpdateNotification" object:nil];
и погрузо уведомление используя селекторы. Я добавил lldb прагм для подавления неопределенных предупреждений селекторных:
- (void)facebookLikeNotification:(NSNotification*)notification {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundeclared-selector"
SEL selector = @selector(objectIsLiked);
if (notification.object && [notification.object respondsToSelector:selector]) {
BOOL (*BOOLMsgSend)(id, SEL) = (typeof(BOOLMsgSend)) objc_msgSend;
BOOL isLiked = BOOLMsgSend(notification.object, selector);
DDLogDebug(@"is liked: %d",isLiked);
}
#pragma clang diagnostic pop
}
FBLikeActionControllerDidUpdateNotification кажется закрытым. Witch версия sdk вы использовали? – Arvind
Небольшого подарок для тех, кто сталкивается этим вопрос:
- Импорт
#import <FBSDKCoreKit/FBSDKMacros.h>
- Определяет Сообщение об этом ключе
FBSDK_EXTERN NSString *const FBSDKLikeActionControllerDidUpdateNotification;
- Регистрации уведомления
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onLikeActionControllerDidUpdateNotification) name:FBSDKLikeActionControllerDidUpdateNotification object:nil];
И примечание будет срабатывать всякий раз, когда пользователь вносит изменения в кнопку LIKE
(например, или в отличие от нее).
Сочетание метода Кевина и уведомления Никеля Артетой работало для меня \ м / – GouthamDevaraju
- 1. FBLikeControl не отображается как кнопка
- 2. Добавить ограничения программно на FBLikeControl
- 3. Как страница в Facebook, используя FBLikeControl
- 4. Изображение кнопки FBlikeControl и изменение текста
- 5. FBLikeControl не открывает приложение для Facebook
- 6. callback callback и асинхронные функции
- 7. Javascript callback callback не работает
- 8. 'surfaceDestroyed callback +' without 'surfaceDestroyed callback -'
- 9. Нажатие FBLikeControl отображает пустую страницу и возвращает к приложению
- 10. AudioUnit Render callback issue (callback notused)
- 11. return callback() и callback() внутри обещания
- 12. Callback callback on Backbone save request
- 13. Что такое Callback vs new AsyncCallback (Callback)?
- 14. угловой ui-bootstrap callback callback на selectMatch?
- 15. LikeView Callback
- 16. ItemTouchHelper callback
- 17. Javascript CallBack
- 18. Callback Eventlistener
- 19. Asychromous callback
- 20. PushNotificationIOS.requestPermissions() callback
- 21. callback structure
- 22. openURL Callback?
- 23. Makefile callback
- 24. SetExpressCheckout callback
- 25. onRendered callback
- 26. store.sync() callback
- 27. callback continue
- 28. Omniauth Callback
- 29. Callback node.js
- 30. Node.js: async callback vs sync callback vs process.nextTick vs setTimeout
Не уверен, если я полностью понимаю вопрос. Если/когда пользователь вернется в ваше приложение (из приложения FB), будет вызвано приложение AppDelegate: openURL: sourceApplication: annotation: method. Поскольку нет другого способа открыть приложение (или вернуться) на iOS, так вы узнаете, что пользователь вернулся. –
, так что нет возможности зарегистрировать себя в качестве делегата из аналогичного элемента управления напрямую или предоставить управление блоком обратного вызова, чтобы уведомить меня? –