This post gives a small idea about
the push notification of iOS and Android.
Life Cycle of Push notification
looks as follows
Push Notification overview of APN
and GCM Server as follows
PUSH NOTIFICATION
|
|
IPhone / IPad
|
Android
|
Login into developer console
|
Login into Google
API console,
|
1. Creating the SSL certificate
1.1. Generating a Certificate Request
Launch the Keychain Access application on your Mac.
Select the menu item Keychain Access > Certificate Assistant >
Request a Certificate From a Certificate Authority…
Enter you name and email address (leave CA Email Address blank).
Select "Saved to disk" to download the .certSigningRequest file to
your desktop.
1.2 Creating and Configuring an AppID
Navigate to the Apple Developer Member Center website, and enter the iOS
Provisioning Portal.
Select App IDs from the menu on the left.
Select the "New App ID" button and create a new App ID. Make sure
you do not enter the wildcard character ("*") in the "Bundle
Identifier" field.
Select "Configure" beside your newly created App ID.
Check "Enable for Apple Push Notification service". Then, Click
"Configure" beside the "Development Push SSL
Certificate". The "Apple Push Notification service SSL Certificate
Assistant" wizard should be displayed.
Select "Continue", then select "Choose File" and locate
the .certSigningRequest file you created in the previous step.
Select "Generate" and download the generated SSL certificate.
Double click on the downloaded SSL certificate to install it in your
Keychain.
In your keychain, under "My Certificates", find the certificate you
just added. It should be called "Apple Development IOS Push Services:
xxx".
Right-click on it, select "Export Apple…", and save it as a .p12
file. Do not enter an export password when you prompted!
2. Creating the Provisioning Profile
Select the "Provisioning" tab in the iOS Provisioning Portal.
Create a new profile by selecting "New Profile".
Fill in the information. Make sure you select your developer certificate, the
App ID you just created, and the devices you'll be testing with.
Download the generated Provisioning Profile by clicking the
"Download" button under the "Actions" column.
Install the profile by double-clicking on the downloaded file. This should
open the iPhone Configuration Utility App.
3. Configuring the Parse App
If you want your users to be able to send push notifications, you will need
to toggle the "Client push enabled?" option to "on" under
the "Push Notification Settings" header. This is useful for
applications like chat clients, where users need to send push messages. For
this tutorial, select toggle the option to "on".
|
If you
haven't created an API project yet, this page will prompt you to do so:
Click Create
project. Your browser URL will change to something like:
Note: #project: (4815162342 in this
example). This is your project ID,
To enable the
GCM service:
|
Use bundle
identifier in the project
|
Use the
project ID (4815162342) in the project
|
P12 key is generated
for the above bundle identifier, Use the p12 key and respective pwd to send
push notification from your server to apple server
|
Create new Server key, which looks like
AIzaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
and used to send push notification from your server to GCM server
|
Client Side Code
|
|
// Register
for push notifications
[application
registerForRemoteNotificationTypes:
UIRemoteNotificationTypeBadge
|
UIRemoteNotificationTypeAlert
|
UIRemoteNotificationTypeSound];
|
// Register
for push notifications
|
Handling Remote Notifications
didFailToRegisterForRemoteNotificationsWithError: For
more details for push notification visit apple documentation ApplePushService
|
public class GCMIntentService extends
GCMBaseIntentService {
public GCMIntentService() {
super("PRODUCT_ID");
}
// Here
PRODUCT_ID is 4815162342
@Override
protected void onError(Context arg0, String arg1) {
}
@Override
protected void onMessage(Context arg0, Intent arg1) {
}
@Override
protected void onRegistered(Context arg0, String arg1) {
}
@Override
protected void onUnregistered(Context arg0, String arg1)
{
}
}
for more
details visit Android Guide GCM
|
didRegisterForRemoteNotificationsWithDeviceToken:
Tells the
delegate that the application successfully registered with Apple Push Service
(APS).
Device Token
is generated
Length of the
device token is 64 bit.
Send Device
Token to server, so it can use it to send push notification
|
onRegistered(Context context, String
regId):
Called after
a registration intent is received, passes the registration ID assigned by GCM
to that device/application pair as parameter. Typically, you should send the
regid to your server so it can use it to send messages to this device.
|
Java Server Side Code
|
|
Add jar file
: JavaPNS_2.2.jar
|
Add Jar file
: gcm-server.jar
|
Thanks
for reading :).
Whether this post is helpful? Please leave a comment.
Whether this post is helpful? Please leave a comment.
Great info. Your post is so nice. I like your job. Thanks for sharing. desktop alerting software
ReplyDeleteHi,
ReplyDeletei am getting the below error 401, can u pls help me, srinathsri@gmail.com
Attempt #1 to send message Message(data: {message=2014/02/10 18:43}) to regIds APA91bE1C8nSrSUVmiDNIBp5bQavalDG_o0T4yC2ZN8bM_1kKvbp_Oj591ewJHE803HRHu7rPU2x_ZBISPEWuUwtPJF_WlSvIT7WtN-EguVcUHaUJ_R_GalpTK3TMeDjuMuGI0KPnmZYVUZtlINIK72fqAMd6SIWq-YNUauLOILfEWxfHP2q2lE
Request body: registration_id=APA91bE1C8nSrSUVmiDNIBp5bQavalDG_o0T4yC2ZN8bM_1kKvbp_Oj591ewJHE803HRHu7rPU2x_ZBISPEWuUwtPJF_WlSvIT7WtN-EguVcUHaUJ_R_GalpTK3TMeDjuMuGI0KPnmZYVUZtlINIK72fqAMd6SIWq-YNUauLOILfEWxfHP2q2lE&data.message=2014%2F02%2F10+18%3A43
Status inside sender class ------->401
401 is Authentication Error.
Delete1. Please check your API key. When API key is not valid then you will be getting 401 error.
2. Invalid project number sent as key.
3. Check your GCM service is enabled or not, Key valid but with GCM service disabled.
KeystoreException
ReplyDeletejavapns.communication.exceptions.InvalidKeystoreReferenceException:
can i use gcm-server.jar for ios also ?
ReplyDelete