アプリケーションをバックグラウンドに入力した後、60秒ごとに通知を送信します。しかし、背景を入力するとすぐに通知が送信され、その後60秒ごとに通知が送信されます。私はすぐに通知を送信したくない、どうすればいい?ここでUNUserNotificationがiosで瞬時に通知を送信しています
が私のコードで、
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .sound]) { (granted, error) in
// Enable or disable features based on authorization.
}
return true
}
func applicationDidEnterBackground(_ application: UIApplication) {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
let content = UNMutableNotificationContent()
content.title = NSString.localizedUserNotificationString(forKey: "Hello,", arguments: nil)
content.body = NSString.localizedUserNotificationString(forKey: "Some", arguments: nil)
content.sound = UNNotificationSound.default()
content.badge = NSNumber(value: UIApplication.shared.applicationIconBadgeNumber + 1)
content.categoryIdentifier = "com.mahmut.localNotification"
let trigger = UNTimeIntervalNotificationTrigger.init(timeInterval: 60.0, repeats: true)
let request = UNNotificationRequest.init(identifier: "60Sec", content: content, trigger: trigger)
let center = UNUserNotificationCenter.current()
center.add(request)
}
私の意見では、アプリケーションが背景60を入力した後にUNNotificationRequestを追加するためにdispatch_afterを使用することができます。 – nynohu
発送は本当に機能しませんでした。私のコードを DispatchQueue.main.asyncAfter(期限:.now()+ 60.0){ }に入れてください。 通知は4秒後、時には40秒後に送信されます。 –
あなたのコードを試しましたが、うまく機能しているようです。 – Matt