Skip to content

[unmaintained] Handle push notifications with Parse in the same way for iOS and Android in Titanium.

Notifications You must be signed in to change notification settings

TheSmiths-Widgets/ts.parsepushnotifications

Repository files navigation

Parse Push Notifications Titanium Alloy License

 This module for the Appcelerator Titanium framework offers an abstraction for handling push notifications with Parse in the same way for both Android and iOS.

Quick Start

Get it gitTio

Download this repository and install it

  • In your application's tiapp.xml file, add the module to the modules section (and its dependency):
<modules>
    <module platform="commonjs">ts.parsepushnotifications</module>
    <module platform="android" version="0.10">eu.rebelcorp.parse</module>
</modules>
  • Copy the ts.parsepushnotifications-commonjs-x.x.x.zip bundle into your root app directory.
  • Also install the eu.rebelcorp.parse module.

Or use your favorite package manager

  • gitTio
    • gittio install ts.parsepushnotifications
    • gittio install eu.rebelcorp.parse@0.10

Use it

Populate your tiapp.xml with your Parse settings keys as follow:

    <property name="Parse_AppId"><!-- YOUR APP ID KEY --></property>
    <property name="Parse_APIKey"><!-- YOUR API KEY --></property>
    <property name="Parse_ClientKey"><!-- YOUR CLIENT KEY --></property>

Then, in your Titanium file:

var ParsePushNotifications = require('ts.parsepushnotifications'),
    Parse = OS_ANDROID && require('eu.rebelcorp.parse');
    
/* Inject dependencies, only for Android. Could be done in alloy.js */
OS_ANDROID && ParsePushNotifications.configure({ Parse: Parse });

/* Once ready, initialize the module */
ParsePushNotifications.init({
    onOpen: function onOpen(data) { doSomething(data); },
    onReceive: function onReceive(data) { doSomething(data); },
    onError: function onError(msg) { doSomething(msg); }
});

/* Subscribe to a channel */
ParsePushNotifications.subscribe({
    channels: ["TheSmiths"]
});

/* Send a notification */
ParsePushNotifications.send({
    channels: ["The Smiths"],
    data: {
        title: "Hey!",
        alert: "You've got a new message",
        message: "We Are Smiths"
    },
    onError: function onError(msg) { doSomething(msg); } 
});

/* Unsubscribe from a channel */
ParsePushNotifications.unsubscribe({
    channels: ["TheSmiths"]
});

Be sure to supply an alert when you send a notification (even from outside Titanium) if you want them to be displayed by the OS.

For iOS, you have to get the right certificate in order to build your app, and also in order to allow Parse to send it incoming notificatons. Please, refer to this Parse tutorial to correctly setup your certificates.

API

ParsePushNotifications.configure(config)

Inject all necessary dependencies

  • {Object} config
    • {Object} config.Parse An instance of the Parse module from eu.rebelcorp.parse
ParsePushNotifications.init(options)

Bind all necessary listeners to handle push notifications.

  • {Object} options
    • {Function} [options.onOpen] A callback triggered when a notification is clicked.
      • {Object} options.onOpen.data Argument of the onOpen callback.
    • {Function} [options.onReceive] A callback triggered when a notification is received. Only triggered if the app is running in foreground.
      • {Object} options.onReceive.data Argument of the onReceive callback. Holds all data sent with the notification.
    • {Function} [options.onError] A callback triggered when any error occured during the process.
      • {String} options.onError.msg Argument of the onError callback.
ParsePushNotifications.subscribe(options)

Register the device for a bunch of channels

  • {Object} options
    • {Function} [options.onError] A callback triggered when any error occured during the process
      • {String} options.onError.msg Argument of the onError callback
      • {Array} options.channels A list of channels to subscribe on Parse
ParsePushNotifications.unsubscribe(options)

Unregister the device from a bunch of channels

  • {Object} options
    • {Function} [options.onError] A callback triggered when any error occured during the process
      • {String} options.onError.msg Argument of the onError callback
    • {Array} options.channels A list of channels to unsubscribe from Parse
ParsePushNotifications.send(options)

Send a notification through Parse

  • {Object} options
    • {Array} options.channels A list of channels to send the notification.
    • {Object} options.data Data to send with the notification.
    • {Function} [options.onSuccess] Callback triggered when the notification is successfully sent.
    • {Function} [options.onError] Callback triggered when something went wrong.

Changelog

  • 1.0 First version

wearesmiths

Appcelerator, Appcelerator Titanium and associated marks and logos are trademarks of Appcelerator, Inc.
Titanium is Copyright (c) 2008-2015 by Appcelerator, Inc. All Rights Reserved.
Titanium is licensed under the Apache Public License (Version 2).

About

[unmaintained] Handle push notifications with Parse in the same way for iOS and Android in Titanium.

Resources

Stars

Watchers

Forks

Packages

No packages published