#ios #swift #xcode #notifications
#iOS #swift #xcode #уведомления
Вопрос:
Я пытаюсь скрыть некоторые указанные Push-уведомления от пользователя, чтобы они не были видны пользователю. Где я могу написать условия для скрытия уведомлений по прибытии, чтобы они не отображались в панели уведомлений. Я пытался сделать это, AppDelgate
но не сработало. Есть ли другой способ, которым я могу это сделать?
func application(applxication: UIApplication, didReceiveLocalNotification notification: UILocalNotification)
{
UIApplication.sharedApplication().cancelLocalNotification(<#T##notification: UILocalNotification##UILocalNotification#>)
//println("Local Notification Received:(notification)")
}
Было бы очень полезно, если бы вы могли мне помочь здесь.
Комментарии:
1. Я также хочу скрыть полученные push-уведомления. Кто-нибудь знает, как с этим можно справиться?
Ответ №1:
Я пробовал это для удаленного уведомления, а не для локального уведомления. Итак, согласно Apple WWDC 2013, если вы передадите content-available" : 1
свою платежную нагрузку, она будет действовать как тихое push-уведомление.
Поэтому просто включите content-available" : 1
в свою полезную нагрузку, как показано ниже, чтобы получить тихое уведомление.
Также в приложении Info.plist
должно быть UIBackgroundModes set to remote-notification
больше информации здесь для тихого push-уведомления
{
aps = {
"content-available" : 1,
sound : ""
};
}
Надеюсь, это поможет…
Счастливого кодирования.
Комментарии:
1. Спасибо @janmenjaya… Есть ли способ справиться с этим со стороны приложения, даже если у меня есть «доступный контент» как «0»?
2. Вы можете проверить «доступный контент» в делегате, чтобы узнать, какое из них является тихим уведомлением, а какое нет. Я думаю, вы спрашиваете об этом
3. Например, так: if ([[[userInfo objectForKey:@»точки доступа»] objectForKey:@»доступный контент»] isEqualToNumber:[NSNumber numberWithInt:1]]) { }
4. нет, то, что я имел в виду, было в полезной нагрузке, если я получу «доступный контент»: 0 из приложения, как я смогу скрыть / не показывать это конкретное уведомление.
5. Я думаю, тогда вы не сможете скрыть. Именно по этой причине Apple представила тихое уведомление, если бы это было возможно, они, возможно, не внедрили эту новую технику на WWDC 2013
Ответ №2:
установить
доступно содержимое» : 1
и удалите
Тело
и
предупреждение
из полезной нагрузки.
Это даст вам желаемый результат.
Когда ваше приложение получает push-уведомление такого типа, оно вызывает следующий метод:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
Комментарии:
1. Спасибо, есть ли какой-либо другой способ справиться с этим через приложение, пока «доступный контент» равен «0»?
2. да, вы можете. но это будет ограничено только запущенным и фоновым режимом. вы не сможете получить или обработать его, если для параметра content-available установлено значение 0, пока ваше приложение находится в автономном режиме.