# ANE-Push-Notification
**Repository Path**: guosc/ANE-Push-Notification
## Basic Information
- **Project Name**: ANE-Push-Notification
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-04-04
- **Last Updated**: 2022-04-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Air Native Extension for Push Notifications (iOS + Android)
======================================
This is an [Air native extension](http://www.adobe.com/devnet/air/native-extensions-for-air.html) for sending push notifications on iOS and Android. It has been developed by [FreshPlanet](http://freshplanet.com) and is used in the game [SongPop](http://songpop.fm).
Push Notifications
---------
On iOS devices, this ANE uses Apple [Push Notification Services](https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html). On Android devices, it uses [Google Cloud Messaging (GCM)](http://developer.android.com/guide/google/gcm/index.html).
Installation
---------
If your app is iOS-only, you can directly use the binary located in the *bin* folder (AirPushNotification.ane). You should add it to your application project's Build Path and make sure to package it with your app (more information [here](http://help.adobe.com/en_US/air/build/WS597e5dadb9cc1e0253f7d2fc1311b491071-8000.html)).
If your app supports Android, you need to compile the ANE with your own assets (status bar icon etc...). To do that, use the ant build script located in the *build* folder (build.xml):
```xml
cd /path/to/the/ane/build
mv example.build.config build.config
# edit the build.config file to provide your machine-specific paths
ant
```
You should also update your manifest with:
```
```
and replace INSERT.APP.ID.HERE by your application id ( tag in your manifest).
Usage
-----
```actionscript
// Register the device for a push notifications
// GOOGLE_PROJECT_ID is necessary only on Android and is your project's ID on GCM.
// On iOS, you can call the method with no parameter.
PushNotification.getInstance().registerForPushNotification(GOOGLE_PROJECT_ID);
// Register for events
PushNotification.getInstance().addEventListener(PushNotificationEvent.PERMISSION_GIVEN_WITH_TOKEN_EVENT, onPushNotificationToken);
PushNotification.getInstance().addEventListener(PushNotificationEvent.NOTIFICATION_RECEIVED_WHEN_IN_FOREGROUND_EVENT, onNotificationReceivedInForeground);
PushNotification.getInstance().addEventListener( PushNotificationEvent.APP_BROUGHT_TO_FOREGROUND_FROM_NOTIFICATION_EVENT, onNotificationReceivedInBackground);
PushNotification.getInstance().addListenerForStarterNotifications(onNotificationReceivedStartingTheApp);
// Handle events
function onPushNotificationToken(event:PushNotificationEvent):void
{
trace("My push token is: " + event.token);
}
// other event handlers also receive a PushNotificationEvent
```
Packaging final app for Android
-------------------------------
When you build your final APK for Android, you need to update (patch) the AIRSDK you're using.
First, make sure you download the latest build-tools (from the Android SDK manager).
Then, patch your AIR SDK with the following command:
`cp pathtoyourANDROIDSDK/build-tools/22.0.1/lib/dx.jar pathtoyourAIRSDK/lib/android/bin/dx.jar`
Notes:
* included binary has been compiled for 64-bit iOS support
Authors
------
This ANE has been written by [Thibaut Crenn](https://github.com/titi-us). It belongs to [FreshPlanet Inc.](http://freshplanet.com) and is distributed under the [Apache Licence, version 2.0](http://www.apache.org/licenses/LICENSE-2.0).
Join the FreshPlanet team - GAME DEVELOPMENT in NYC
------
We are expanding our mobile engineering teams.
FreshPlanet is a NYC based mobile game development firm and we are looking for senior engineers to lead the development initiatives for one or more of our games/apps. We work in small teams (6-9) who have total product control. These teams consist of mobile engineers, UI/UX designers and product experts.
Please contact Tom Cassidy (tcassidy@freshplanet.com) or apply at http://freshplanet.com/jobs/