Мне нужно знать, будет ли мое приложение перенесено на передний план через взаимодействие с push-уведомлением или вручную пользователями, щелкнув по приложению.Обнаруживать, если приложение открыто из фона Swift iOS
Если вы открываете приложение от фона вручную «applicationWillEnterForeground» называется. Если вы открываете приложение из фона через push-уведомление, вызывается «applicationWillEnterForeground», а затем «didReceiveRemoteNotification».
Теперь я хочу сделать запрос alamofire внутри делегата приложения на моем бэкэнд, когда я уверен, что он был открыт из-за push или нет (статистика, пользователи взаимодействуют с нашими push-сообщениями).
Есть ли метод, который называется после всех перечисленных мной? Если бы я мог в этом месте проверить, было ли это толчок или нет, и отправить его. Или есть лучший способ справиться с этим?
Хорошо выглядеть. У меня есть rest-api, мне нужно позвонить. OpenedViaPush() или OpenedManually(). Код, который вы показываете, я уже использую, чтобы проверить его на холодный запуск приложения. Теперь приложение находится в фоновом режиме и возобновлено. Вы действительно можете проверить наличие didReceiveRemoteNotification. Но если вы хотите отслеживать, было ли оно открыто из фона вручную, оно не работает, потому что вызывается 2 метода. applicationWillEnterForeground, а затем didReceiveRemoteNotification. –
Вам не нужно заботиться о методе applicationWillEnterForeground для сценария, в котором приложение было в фоновом режиме. Просто реализуйте то, что вам нужно в didReceiveRemoteNotification. Может быть, [эта тема] (http://stackoverflow.com/questions/5056689/didreceiveremotenotification-when-in-background) будет полезна. – user3581248
и если вы не получили удаленное уведомление, а просто открыли приложение из фона? didReceiveRemoteNotification вызывается только при получении уведомления. Мне нужен способ сделать то и другое. –