APNS(2)Try to Finish the first Example

APNS(2)Try to Finish the first Example


Brief Overview


1. An app enables push notifications.

2. The app receives a "device token".

3. The app sends the device token to your server

4. The server sends a push notification to the Apple Push Notification Service

5. APNS sends the push notification to the user's device.


After the user's device receives the push notification, it shows an alert, plays a sound and/or updates the app's icon.


Need for Push Notifications
An iPhone or iPad

An iOS Developer Program membership

A VPS(Virtual Private Server)


Anatomy of a Push Notification
{

"aps":

{

"alert": "Hello, world!",

"sound": "default"

}

}


{

"aps":

{

"alert":

{

"action-loc-key": "Open",

"body": "Hello, world!"

},

"badge": 2

}

}


Push Notification Gotchas
They are not reliable. There is no guarantee. Push notifications are fire-and-forget, there is no way to find out what the status of a notification is. APNS will try to deliver the last notification after the device is back online, but once it times out, the push notification will be lost forever.


Provisioning Profile and Certificates
We need an SSL certificate.


Generating the Certificate Signing Request(CSR)
Use 'Command' + 'Blank' to find the Keychain Access application on my MAC book.

'Certificate Assistant' and choose 'Request a Certificate from a Certificate Authority…'


Enter my email which I register on the iOS developer. And give a 'Easy iOS sample' for common name and select the 'Save to disk'.


Save the file on the desktop as easyiossample.certSigningRequest.


Select 'login' on the top and 'Keys' at the left bottom, we will see the private and public key we just created. Select the private key and export to desktop with name EasyiOSSampleKey.p12 and use a password to protect it.


Making the App ID and SSL certificate
Go to this URL

https://developer.apple.com/ios/manage/overview/index.action


'App IDs' ---> 'New App ID'

Description: EasyiOSExample

Bundle Seed ID:

Bundle Identifier:


click on "Configure"


check the Enable for Apple Push Notification service box and click on the 'Configure' button for the Development Push SSL Certificate.


continue to find the Certificate Signing Request(CSR). ----> Generate -----> Done


click Download to get the certificate. It is named aps_development.cer.


Making a PEM file
Till now, I have 3 files:

The CSR

The private key as a p12 file

The SSL certificate, pas_developer.cer


I will combine the certificate and the private key into a single file that uses the PEM format.


>openssl x509 -in aps_development.cer -inform der -out easyiossample_cert.pem

>openssl pkcs12 -nocerts -out easyiossample_key.pem -in EasyiOSSampleKey.p12

Enter Import Password:

MAC verified OK

Enter PEM pass phrase:

Verifying - Enter PEM pass phrase:


First password is for open the private key. Other 2 passwords are creating the protection for PEM file.


Put the 2 PEM files together

>cat easyiossample_cert.pem easyiossample_key.pem > ck.pem


I verify the certificate and key like this>

>telnet gateway.sandbox.push.apple.com 2195


>openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert easyiossample_cert.pem -key easyiossample_key.pem


But I got this error, Error Message:

Verify return code: 20 (unable to get local issuer certificate)


I will find out if this is a problem and solve it later.


Making the Provisioning Profile
Select the 'Provisioning' Menu. -----> New Profile

Profile Name: EasyiOSSample Development

certificates:

App ID:

Devices:


Before do that, I need to 'Certificates' --- Upload my CSR.


Go to the 'Devices' and active my devices.


We are creating provisioning profile, because each push app needs to have its own profile that is connected to the proper App ID.


After finish that, we can download and get a file named Easy iOS Sample.mobileprovision.


All these accounts things are done, I will go on to write the sample client.


References:
http://w54653520.iteye.com/blog/1319595


http://code.google.com/p/javapns/

http://www.ibm.com/developerworks/cn/mobile/mo-ios-push/

http://hz-chenwenbiao-rr.iteye.com/blog/1604589


http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

http://www.raywenderlich.com/3525/apple-push-notification-services-tutorial-part-2

http://www.raywenderlich.com/tutorials
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值