Я не уверен, если кто-нибудь сталкивались с этим делом, но это так:Получить уведомление в APNs, когда открыто приложение
Я закончил APNs, приложение было получить уведомление. Он отлично работал, когда я открываю приложение из уведомления (которое вызывает appDidReceiveRemoteNotification:
).
Странная вещь, когда приложение находится на фоне, оно получает уведомление (отображается в окне уведомлений). Когда я открываю приложение, коснувшись значка (а не уведомления), отладчик не остановился ни на appDidReceiveRemoteNotification:
, ни на appDidFinishLaunchWithOption:
, поэтому мое уведомление не было сохранено. Когда я снова вытащил окно уведомления и коснувшись уведомления, отладчик остановится на appDidReceiveRemoteNotification:
, как и ожидалось. Как обновить уведомление с помощью открытого приложения на значке приложения?
** EDIT **
Благодаря Abhinav, я понял, что мне не хватает-использовать метод. Я должен использовать либо
- (void)applicationWillEnterForeground:(UIApplication *)iApplication // Or
- (void)applicationDidBecomeActive:(UIApplication *)iApplication.
Но, мое приложение - это дизайн, который показывает, что сервер может отправлять сообщение (об обновлении, новости ...) пользователю. Такой код:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//....
if (launchOptions) {
NSDictionary *dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (dictionary) {
[Message saveMessage:dictionary];
NSLog(@"Launched from push notification: %@", dictionary);
}
}
//....
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
// Save message to coredata.
[Message saveMessage:userInfo];
// Perform seggue, showing inbox viewcontrollers here.
}
Но как использование метода при открытии приложения из фона не дает словарь уведомления, и мой босс потребовал, чтобы я обновить CoreData при открытии приложения из фона, как, что, как я мог бы сделать что? Или я должен сказать моему боссу, который не может быть приобретен? Мы не хотим, чтобы пользователь пропускал уведомление об обновлениях.
пожалуйста показать ваш блок кода –
'appDidReceiveRemoteNotification:' или 'appDidFinishLaunchWithOption:' никогда не вызывается Когда ваше приложение выходит из фона. Вы будете уведомлены делегатом 'applicationWillEnterForeground:' или 'applicationDidBecomeActive:' при входе в поле. Если вы хотите обновить значок уведомления, вы можете сделать это здесь. – Vijay