我想使用UserNotificationFramework on iOS 10只给自己发送数据通知--也就是说,没有面向文本或声音的用户。基本上,使用它作为一个持久的计时器,以便能够触发应用程序,如果它运行时,它启动,以检查诸如会话超时,因为令牌到期。
类似于本地通知中的“内容可用”无面推送通知的模拟。
我让所有的工作,但我不能得到一个通知,以触发,如果没有某种类型的用户面对的数据需要参与。
下面是添加到UNMutableNotificationContent中以触发通知的UNNotificationRequest的相关部分。
// content.body = "Expiration"
// content.sound = UNNotificationSound(named: "silent-short.wav")
content.threadIdentifier = typeIdentifier
content.userInfo = ["1":"One"]
content.setValue("YES", forKey: "shouldAlwaysAlertWhileAppIsForeground")如前所述,通知根本不开火。如果我不评论这两句话中的任何一句--不管是哪一行--它都会开火。但是我不希望一个文本通知横幅显示给用户(无论是在应用程序中还是在应用程序之外),所以第一个不起作用。我试着使用一个无声的声音,这样系统就可以认为它在播放声音,而用户却什么都没有。但系统提供了一个方便的振动。在这种情况下就不那么方便了。有没有办法让通知不震动?或者其他只获取本地数据通知的方法?
发布于 2017-09-01 14:50:24
不能安排本地通知,使其表现为无声的推送通知,而不会出现在通知中心。UserNotifications框架旨在以通知的形式向用户显示数据。
您只能使用推送通知实现无声通知,目前无法使用本地通知实现相同的功能。
如果您的应用程序不在前台时需要执行任务,则可以使用后台执行;但是,如果您只需要在应用程序处于前台时运行任务,则有比使用通知更好的方法来实现这一点。尽管你的问题对于你真正想要达到的目标是相当模糊的,但是你提到了会话超时。为了测量会话超时,您可以只使用普通的Date对象,在启动会话时保存当前日期,并在需要使用令牌来决定令牌是否过期之前,使用Date().timeIntervalSince(date: startDate)检查经过的时间。
https://stackoverflow.com/questions/46002528
复制相似问题