Ищите хорошую практику касательно ручек push-уведомлений. В настоящее время в моем приложении я обрабатываю push-уведомления в didFinishLaunchingWithOptions и в didReceiveRemoteNotification делегатов. Я заметил, что обе обработки логики «стреляют», когда я получаю push-уведомления, когда приложение «Dead». Мой удаленный флаг уведомлений в режимах фона ВКЛ в моем приложении. Есть ли хорошая практика для обработки этого сценария? почему я получаю push-данные в didFinishLaunchingWithOptions (launchOptions), а didReceiveRemoteNotification тоже вызывается? Насколько мне известно, didReceiveRemoteNotification не подвергается шпионам, чтобы получить вызов, когда приложение «Dead».iOS Push Notifications handle
ответ
didReceiveRemoteNotification вызывается при получении уведомления и при открытии приложения из уведомления. Загрузка фонограмм НЕ запускается, если ваше приложение мертво и вообще не открывается. То, что вы испытываете, это didReceiveRemoteNotification, вызываемый, потому что вы прослушиваете уведомление. Что вам нужно сделать, так это добавить некоторую логику к этому методу, чтобы узнать, в каком состоянии находится приложение, и иметь дело с вашим уведомлением.
т.е.
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler
{
if ([UIApplication sharedApplication].applicationState == UIApplicationStateInactive) {
[[NSNotificationCenter defaultCenter] postNotificationName:@“inactivePush" object:nil];
}
else if([UIApplication sharedApplication].applicationState==UIApplicationStateActive){
[[NSNotificationCenter defaultCenter] postNotificationName:@"appOpenPush" object:nil];
}
//When the app is in the background
else {
}//End background
}
}
Первый случай для если приложение неактивно (открыт от толчка), во-вторых, когда приложение на самом деле открыт, а третий для когда приложение находится в фон. Я использую NSNotifcation как пример, но вы можете использовать любой код обработки, который вы хотите. Причина, по которой я добавил окончательный вариант, состоит в том, что вы можете поместить свой код фона/загрузки там, и таким образом он не будет загружать вещи дважды, то есть если вы получите уведомление, а затем нажмите на него.
- 1. Phonegap iOS push notifications
- 2. iOS clear push notifications
- 3. SignalR IOS push notifications
- 4. iOS Push Notifications Flow
- 5. Parse iOS Push Notifications
- 6. iOS Not Receiving Push Notifications
- 7. iOS push notifications и GCM
- 8. IBM Bluemix iOS Push Notifications
- 9. Phonegap iOS Push Notifications example
- 10. PhoneGap Meteor iOS Push Notifications
- 11. Push notifications
- 12. Push Notifications over WiFi
- 13. iOS IBM Bluemix Push Notifications Server Pretending
- 14. iOS Push Notifications с NodeJS - учетные данные
- 15. iOS 10 Push Notifications - Sandbox APNS Issue
- 16. iOS push notifications: приложение не запрашивает разрешения
- 17. iOS Push notifications не работает в производстве
- 18. iOS Push Notifications не работает для распространения
- 19. IOS Push Notifications с использованием Parse
- 20. СМИ Вложение в IOS 10 Push Notifications
- 21. Проблемы с Push Notifications iOS TestFlight
- 22. Странное поведение при регистрации IOS Push Notifications
- 23. iOS - friendlist with push notifications [architecture]
- 24. Mixpanel - iOS Push Notifications - Удалить один токен
- 25. Apple push notifications on GCM
- 26. iOS Push Notifications - no push после удаления и переустановки
- 27. Firebase & Push Notifications/Cloud Messaging
- 28. Ionic 2 Local Notifications vs Push Notifications
- 29. Parse Visual Studio Push Notifications
- 30. Push Notifications Issue app Transfer
привет, у меня есть аналогичный сценарий, но требуется небольшая модификация, но, как когда я получаю push-уведомление, приложение будет активно работать в фоновом режиме и выполнять задание, введенное в приложение - (void): (UIApplication *) didReceiveRemoteNotification : (NSDictionary *) userInfo, но мое приложение не будет активировано, пока пользователь не ответит на уведомление. так, как бы это сделать, когда приложение находится в фоновом режиме? доза, кто знает решение для этого? – Moxarth