2016-06-03 3 views
1

Я пытаюсь добавить SDK для Facebook в свое приложение Cordova для отслеживания установок. В Facebook App Ads Setup они требуют, чтобы добавитьapplicationDidBecomeActive не работает в приложении Cordova

- (void)applicationDidBecomeActive:(UIApplication *)application { 
    [FBSDKAppEvents activateApp]; 
} 

Я добавил, что фрагмент кода моей AppDelegate.m и включал в себя NSLog и он никогда не дозвонились. Любая помощь будет принята с благодарностью.

+0

Пробовал ли вы включать NSLog в другие методы делегирования приложений, например, для ex: applicationDidFinishLaunching и посмотреть, вызвана ли какая-либо из них? –

+0

Да, я добавил журнал в applicationDidFinishLaunching и получил вызов, и если я переведу фрагмент Facebook, который будет вызван. Я просто обеспокоен тем, насколько уместен расхождение с инструкциями Facebook или нет. – Julien

ответ

0

applicationDidBecomeActive метод вызывается при переходе приложения из фона в передний план. Когда пользователь получает вызов, смс и т. Д. Или нажимает кнопку «домой», приложение переходит в фоновый режим (чтобы сохранить батарею и т. Д.); После завершения вызова или многозадачности приложение снова активируется. Затем вызывается метод applicationDidBecomeActive. Его следует использовать в основном для обновления табличных представлений и т. Д.

Здесь приведена документация Apple для того же метода.

Этот метод призван, чтобы ваше приложение узнало, что оно переместилось из в активное состояние. Это может произойти из-за того, что ваше приложение было запущено пользователем или системой. Приложения также могут вернуться в активное состояние, если пользователь предпочитает игнорировать прерывание (например, входящий телефон звонок или SMS-сообщение), который временно отправил приложение в неактивное состояние .

Вы должны использовать этот метод для перезапуска любых приостановленных задач (или еще не запущен), в то время как приложение неактивно. Например, вы можете использовать , чтобы перезапустить таймеры или увеличить частоту кадров OpenGL ES. Если ваше приложение было ранее в фоновом режиме, вы также можете использовать его для обновления вашего пользовательского интерфейса вашего приложения.

Что происходит совершенно нормально, а реклама Facebook должна работать правильно.

Пожалуйста, обратитесь к следующим документам, чтобы получить более глубокое понимание жизненного цикла приложений и приложений App Store.

The App Life Cycle

UIApplicationDelegate

+0

Благодарим вас за объяснение того, что должно делать applicationDidBecomeActive. В [Facebook FAQ] (https://developers.facebook.com/docs/app-ads/resources/faqs#test-app) говорится, что после открытия приложения с помощью кода applicationDidBecomeActive должна быть запись приложение установлено. Когда я переношу этот код в applicationDidFinishLaunching, я получаю запись установки, но я не уверен, что это поощрительное отклонение от документов facebook. – Julien

+0

Ваши объявления работают правильно? –

+0

Я еще не начал никаких кампаний, потому что я хочу заплатить за загрузку, а код для отслеживания загрузки приложения не работает должным образом. – Julien

0

Я нашел решение этой проблемы или, по крайней мере, причина, почему некоторые системные ответчики не могут стрелять в Cordova проектов:

Если вы используете плагин который расширяет AppDelegate для доступа к ответчикам на жизненный цикл in iOS, вы можете не знать, что какой-либо другой компонент также расширяет AppDelegate и уже использует этот ответчик, что делает ответчик недоступным в вашей реализации ,

В моем случае: я делал делегат, который бы размыть экран, чтобы скрыть конфиденциальные персональные данные, прежде чем сделать снимок и послала заявку в фоновый режим, мне нужно добавить код

- (void)applicationWillResignActive:(UIApplication *)application{} 
- (void)applicationDidBecomeActive:(UIApplication *)application{} 
- (void)applicationDidEnterBackground:(UIApplication *)application{} 
- (void)applicationWillEnterForeground:(UIApplication *)application{} 

Я не был получить любой ответ от DidBecomeActive, хотя, даже если я просто пытался NSLog что-то.Я искал проект для DidBecomeActive key, и оказалось, что FirebasePlugin уже этот метод использует для других вещей (этот плагин был добавлен в проект другим человеком, поэтому я не знал, как он работает). То, что я сделал, просто перенесло мой код в плагин Firebase и реализовал отсутствующие ответчики, потому что у меня было всего около 10 строк.

Смежные вопросы