我正在使用Urban Airship在我的iOS 10(Swift)应用程序中接收推送通知。我遇到以下问题,请求帮助解决。
无法在应用运行前台时隐藏通知
要隐藏通知,我已尝试执行以下任务..
删除委托方法func userNotificationCenter的实现(_ center:UNUserNotificationCenter, willPresent通知:UNNotification, withCompletionHandler completionHandler:@escaping(UNNotificationPresentationOptions) - >空隙)
我试图传递completionHandler(UNNotificationPresentationOptionNone) 逃避/隐藏通知吐司,但" UNNotificationPresentationOptionNone"已不再可用。
completionHandler([]) - 这不起作用。 我试图通过" UNNotificationPresentationOptionNone"在
清除通知
如何清除/删除列表中的已发送(一旦用户读取或取消)通知,并相应地更新徽章图标。
由于
答案 0 :(得分:0)
前景展示处理
有两种方法可以使用Urban Airship SDK处理iOS10 +上的前景呈现选项。如果您在Urban Airship SDK上配置了UAPushNotificationDelegate
个实例,则演示选项将委派给presentationOptions
并按推送处理。例如:
@available(iOS 10.0, *)
func presentationOptions(for notification: UNNotification) -> UNNotificationPresentationOptions {
return [.alert]
}
您可以返回[]
不提供任何内容。
否则,如果您没有配置上述委托,则可以通过设置defaultPresentationOptions
来禁用所有前台演示选项。
UAirship.push().defaultPresentationOptions = []
清除通知
在iOS10 +上,您可以通过提供UNUserNotificationCenter
方法的removeAllDeliveredNotifications()
共享实例清除应用的通知。为了保持旧版iOS的兼容性,您可以回退到将徽章设置为零 - 有关该here的更多信息。
if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().removeAllDeliveredNotifications()
} else {
UIApplication.shared.applicationIconBadgeNumber = 0;
};