Я нашел решение этой проблемы или, по крайней мере, причина, почему некоторые системные ответчики не могут стрелять в 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 строк.
Пробовал ли вы включать NSLog в другие методы делегирования приложений, например, для ex: applicationDidFinishLaunching и посмотреть, вызвана ли какая-либо из них? –
Да, я добавил журнал в applicationDidFinishLaunching и получил вызов, и если я переведу фрагмент Facebook, который будет вызван. Я просто обеспокоен тем, насколько уместен расхождение с инструкциями Facebook или нет. – Julien