ios10のローカル通知
ios10から追加されたUserNotificationsを使ってローカル通知を試しに実装してみた。
ちなみにUILocalNotificationはiso10から非推奨になった。
import UIKit import UserNotifications class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() //通知許可設定 let center = UNUserNotificationCenter.current() center.requestAuthorization(options: [.alert, .sound]){ (granted, error)in } //contentの設定 let content = UNMutableNotificationContent() content.title = "ローカル通知タイトル" content.body = "ローカル通知ボディ" content.sound = UNNotificationSound.default() //通知トリガー let trigger = UNTimeIntervalNotificationTrigger(timeInterval: (10), repeats: false) //identifier let requestIdentifier = "sampleRequest" let request = UNNotificationRequest(identifier: requestIdentifier, content: content, trigger: trigger) center.add(request) } }
通知トリガーでrepeats: true にした場合にtimeIntervalが60sより早い場合(10sとか50s)はエラーになってしまうのは不明。
特に、ドキュメントには記載されていない感じだった。
上のサンプルコードは、基本的にはUILocalNotificationでも実装できたことUserNotificationsで実装されているだけ。
アプリがバックグラウンドにいる時にローカル通知がされるから、フォアグラウンドの場合は通知されない。
フォアグラウンド状態でも通知したい場合は、別途実装が必要になる。次の機会にその辺を調査する。