2015-12-10 3 views
0

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

Но если пользователь получил уведомление, находящееся вне приложения, и нажимает на значок приложения на главном экране, а не на значок уведомлений, приложение не обнаруживает, что получено уведомление. Как мне заставить это работать?

Внутри моего приложения делегат:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { 
} 

if let remoteNotification = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? NSDictionary { 
} 

ответ

2

Это не сработает. Все дело в том, что предполагаются разные вещи, которые происходят, если пользователь нажимает на уведомление или не нажимает на него. Было бы непредвиденным поведением для пользователя, если бы они целенаправленно игнорировали уведомление, но затем нажали на значок приложения, а затем приложение было отправлено на уведомление в любом случае. Представьте, что вы пытаетесь игнорировать сообщение в Message.app, не нажимая на уведомление, но тогда вы не сможете открыть приложение иначе, потому что оно будет действовать с уведомлением.

1

В didReceiveRemoteNotification делегат можно сохранить значение, которое было получено уведомление, а затем на applicationWillEnterForeground вы могли бы осмотреть эту величину и действовать соответствующим образом.

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