Как я могу реализовать наблюдаемые для локального уведомления и Push-уведомления при их получении. В приложение делегата, мы оповещать оRx_Swift для локальных и push-уведомлений
didReceiveLocalNotification
и
didReceiveRemoteNotification
Как я могу слушать эти уведомления на другом экране? Я использовал NotificationCenter для уведомления, но теперь я хочу использовать RX-Swift. Я пробовал таким образом, но не работал.
extension UILocalNotification {
var notificationSignal : Observable<UILocalNotification> {
return Observable.create { observer in
observer.on(.Next(self))
observer.on(.Completed)
return NopDisposable.instance
}
}
}
Может ли кто-нибудь мне помочь?
Обновлено:
Привет, Я нашел решение для этого, используя точно так же, как вы привыкли, но некоторые изменения.
class NotificationClass {
static let bus = PublishSubject<AnyObject>()
static func send(object : AnyObject) {
bus.onNext(object)
}
static func toObservable() -> Observable<AnyObject> {
return bus
}
}
Отправить уведомление AppDelegate:
func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) {
NotificationClass.send(notification)
}
Затем наблюдать на любом другом классе.
NotificationClass.bus.asObserver()
.subscribeNext { notification in
if let notification : UILocalNotification = (notification as! UILocalNotification) {
print(notification.alertBody)
}
}
.addDisposableTo(disposeBag)
Лучшая вещь этого класса - мы можем испускать и потреблять любые объекты через него.