我刚刚更改了我对iOs 10和其他人的通知:
if #available(iOS 10.0, *) {
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .sound]) { (granted, error) in
let content = UNMutableNotificationContent()
content.body = notifMessage!
content.sound = UNNotificationSound.default()
// Deliver the notification in five seconds.
let trigger = UNTimeIntervalNotificationTrigger.init(timeInterval: 5, repeats: false)
let request = UNNotificationRequest.init(identifier: "Upload", content: content, trigger: trigger)
// Schedule the notification.
let center = UNUserNotificationCenter.current()
center.add(request)
}
} else {
let notification = UILocalNotification()
notification.alertBody = notifMessage
notification.fireDate = NSDate() as Date
notification.soundName = UILocalNotificationDefaultSoundName
UIApplication.shared.scheduleLocalNotification(notification)
}
当我在我的设备上运行我的应用程序时,通过将其连接到USB可以正常运行,但只有当应用程序处于后台时,它才会起作用:
我杀了应用
显示应用时
答案 0 :(得分:0)
如果你杀了应用程序(通过双击主页按钮然后向上滑动),这不仅会终止应用程序,而且会禁止应用程序的进一步后台操作(直到用户再次启动它)。您只需按下主页按钮,即可通过正常的内存恢复过程将应用程序放弃。或者,出于测试目的,您可以以编程方式崩溃应用程序。但你不能使用跳板(主页按钮技巧的双击),因为影响应用程序的允许背景模式。
关于显示应用程序时的通知,如果用户点击通知,则用户手动启动应用程序忽略通知,这些都会以不同的方式传达给应用程序。请参阅UIApplicationDelegate
documentation的响应通知和事件部分。或者查看App Programming Guide for iOS: Background Execution以获取有关后台操作的一般信息。
答案 1 :(得分:0)
您的代码中有几个错误: 1.缺少通知的标题。您已将正文和声音添加到内容中,但标题丢失了。标题是必须的,如果您没有添加标题,通知将无法显示。
content.title = "Some Title"
init
进行初始化。这些功能可以重写为: let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
let request = UNNotificationRequest.init(identifier: "Upload", content: content, trigger: trigger)
let request = UNNotificationRequest(identifier: some_value, content: content, trigger: trigger)
希望这有帮助。