Push Notifications is an extension that enables the use of Push Notifications on your device using Apple Push Notification Service (APNS) on iOS and the Google Cloud Messaging (GCM) service on Android.

Some features:

  • Apple Push Notification Service support for iOS devices
  • Google Cloud Messaging service support for Android devices
  • Register for and receive notifications from remote services with only a few lines of code
  • Single simple API interface – your code works across iOS and Android with no modifications
  • Sample project code and ASDocs reference

Sample

package
{
	import com.distriqt.extension.pushnotifications.PushNotifications;
	import com.distriqt.extension.pushnotifications.events.PushNotificationEvent;

	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.ErrorEvent;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.text.TextField;
	import flash.text.TextFormat;

	/**
	 * This is a test application for the distriqt push notifications native extension service
	 *
	 *
	 * @author Michael Archbold (ma@distriqt.com)
	 *
	 */
	public class TestPushNotifications extends Sprite
	{
		public function TestPushNotifications()
		{
			super();
			create();
			init();
		}

		private var _idField		: TextField;
		private var _messageField	: TextField;
		private var _pn			: PushNotifications;

		private function create():void
		{
			var tf:TextFormat = new TextFormat();
			tf.size = 24;

			_idField = new TextField();
			_idField.defaultTextFormat = tf;
			_idField.wordWrap = true;

			_messageField = new TextField();
			_messageField.border = true;
			_messageField.defaultTextFormat = tf;

			addChild( _messageField );
			addChild( _idField );

			_messageField.y = _idField.height;
		}

		private function init():void
		{
			try
			{
				PushNotifications.init( "your_dev_key" );

				message( "PN Supported: "+ String(PushNotifications.isSupported) );
				message( "PN Version: " + PushNotifications.service.version );
				PushNotifications.service.addEventListener( PushNotificationEvent.REGISTER_SUCCESS, pn_registerSuccessHandler );
				PushNotifications.service.addEventListener( PushNotificationEvent.NOTIFICATION, 	pn_notificationHandler );
				PushNotifications.service.addEventListener( PushNotificationEvent.ERROR,			pn_errorHandler );
				PushNotifications.service.register( "your_google_account" );
			}
			catch (e:Error)
			{
				_messageField.appendText( e.message );
			}

			stage.align     = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.addEventListener( Event.RESIZE, stage_resizeHandler, false, 0, true );
//			stage.addEventListener( MouseEvent.CLICK, mouseClickHandler, false, 0, true );
		}

		private function layout():void
		{
			_idField.width = stage.stageWidth;

			_messageField.width  = stage.stageWidth;
			_messageField.height = stage.stageHeight - _messageField.y;
		}

		private function message( str:String ):void
		{
			trace( str );
			_messageField.appendText(str+"\n");
		}

		////////////////////////////////////////////////////////
		//	EVENT HANDLERS
		//

		private function stage_resizeHandler( event:Event ):void
		{
			layout();
		}

		private function mouseClickHandler( event:MouseEvent ):void
		{
			try
			{
				PushNotifications.service.setBadgeNumber( int(40*Math.random()) );
			}
			catch (e:Error)
			{
				message( "ERROR:"+e.message );
			}
		}

		////////////////////////////////////////////////////////
		//	NOTIFICATION HANDLERS
		//

		private function pn_registerSuccessHandler( event:PushNotificationEvent ):void
		{
			message( "PN registration succeeded with reg ID: \n" + event.data  );
			_idField.text = event.data;
		}

		private function pn_notificationHandler( event:PushNotificationEvent ):void
		{
			message("Remote notification received!" );
			message( event.data );
		}

		private function pn_errorHandler( event:PushNotificationEvent ):void
		{
			message( "ERROR::"+event.data );
		}

	}
}
Air Native Extension, Android, iOS . URL.