mpurbo / MMPReactiveNotification

Local and remote push notifications as reactive signals with ReactiveCocoa
MIT License
18 stars 1 forks source link

MMPReactiveNotification

MMPReactiveNotification is a reactive library providing signals for local and remote push notifications.

Features:

Installation

MMPReactiveNotification is available through CocoaPods, to install it simply add the following line to your Podfile:

pod 'MMPReactiveNotification'

Usage

Use MMPReactiveNotification class method service anywhere in your application to subscribe to an appropriate signal. For example, following example shows how to use remoteRegistration signal to register for remote push notification with default settings and receive the push token:

// import the header
#import <MMPReactiveNotification/MMPReactiveNotification.h>

[[[MMPReactiveNotification service]
                           remoteRegistration]
                           subscribeNext:^(NSData *tokenData) {
                               NSLog(@"Receiving push token: %@", tokenData);
                               // Send the push token to your server
                           }
                           error:^(NSError *error) {
                               NSLog(@"Push registration error: %@", error);
                           }];

To receive remote push notifications, use remoteNotifications method:

[[[MMPReactiveNotification service]
                           remoteNotifications]
                           subscribeNext:^(NSDictionary *pushData) {
                               NSLog(@"Receiving push: %@", pushData);
                           }];

To receive local notifications, use localNotifications method:

[[[MMPReactiveNotification service]
                           localNotifications]
                           subscribeNext:^(UILocalNotification *localNotification) {
                               NSLog(@"Receiving local notification: %@", localNotification.alertBody);
                           }];

Custom Settings

Default settings for remote push registration are:

To customize these settings, use notificationTypes and categories methods as shown in the following example:

// only enable alert and badge
[[[[MMPReactiveNotification service]
                            notificationTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge]
                            remoteRegistration]
                            subscribeNext:^(NSData *tokenData) {
                                NSLog(@"Receiving push token: %@", tokenData);
                                // Send the push token to your server
                            }];

Scheduling Local Notifications

To create a local notification, use a new MMPLocalNotificationSpec to first specify the notification, then call schedule method to schedule it:

[[[[[[MMPLocalNotificationSpec new]
                               withAlertBody:@"Your daily quiz is now available!"]
                               withSoundName:UILocalNotificationDefaultSoundName] withCategory:@"Quiz"]
                               fireDailyAtHour:18 minute:0 second:0]
                               schedule];

This scheduling will also automatically register notification settings if it hasn't been done previously.

Contact

MMPReactiveNotification is maintained by Mamad Purbo

License

MMPReactiveNotification is available under the MIT license. See the LICENSE file for more info.