iOS远程推送之获取deviceToken
2015-09-08 00:20
567 查看
远程推送的原理就是:
1手机或者说苹果自动将用户的UDID 和应用的 AppID发送到APNs,APNs返回一个deviceToken给iOS设备,同一个手机不同的应用会生成不同的deviceToken,同一个手机同一个应用只生成一个deviceToken;
2手机端将deviceToken发送到自己公司的后台服务器,用以保存;
3当后台需要推送消息给用户时,服务器将需要推送的消息和deviceToken传输给APNs;
**4**APNs将消息推送给指定的deviceToken对应的手机;
5用户接收消息;
步骤:
生成AppleID,生成推送用的生产证书(测试环境使用的)和发布证书(正式环境使用的),生成一个测试证书
1生成AppleID:
打开开发者中心,登陆账号;
点击下一步呀,继续呀,submit呀,done呀等完成这一步的操作;
2上一步创建的AppleID的证书是没有push功能的,
这一步就是给AppleID加上此功能
上一张图片有一个edit按钮,选中,
到这一步先放一放;
打开钥匙串,钥匙串访问——>证书助理——>从证书颁发机构请求证书,然后打开如下界面,
回到刚才我们停滞的页面
这里有两个create certificate…,先选第一个,下一步,chooseFiles 然互选择刚才从钥匙串生成的证书,然后点生成generate,点下载;这样一个推送的开发证书就生成了;同样的道理生成push的发布证书;
然后将下载下来的证书安装到钥匙串中,双击就好了,会在钥匙串的我的证书界面看到添加进去的证书,然后进去xcode工程;
在工程中的的Appdelegate.m中的
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions{
- //注册远程通知服务
[application registerUserNotificationSettings:[UIUserNotificationSettings
settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge)
categories:nil]];
[[UIApplication sharedApplication]registerForRemoteNotifications];
}
(void)application:(UIApplication )application didRegisterForRemoteNotificationsWithDeviceToken:(NSData )deviceToken{
//获取deviceToken
NSLog(@”注册远程推送成功——————%@”,deviceToken);
}
真机测试:
前面提到的如果没有调试证书就新生成一个,一下为新生成方法
1手机或者说苹果自动将用户的UDID 和应用的 AppID发送到APNs,APNs返回一个deviceToken给iOS设备,同一个手机不同的应用会生成不同的deviceToken,同一个手机同一个应用只生成一个deviceToken;
2手机端将deviceToken发送到自己公司的后台服务器,用以保存;
3当后台需要推送消息给用户时,服务器将需要推送的消息和deviceToken传输给APNs;
**4**APNs将消息推送给指定的deviceToken对应的手机;
5用户接收消息;
步骤:
生成AppleID,生成推送用的生产证书(测试环境使用的)和发布证书(正式环境使用的),生成一个测试证书
1生成AppleID:
打开开发者中心,登陆账号;
点击下一步呀,继续呀,submit呀,done呀等完成这一步的操作;
2上一步创建的AppleID的证书是没有push功能的,
这一步就是给AppleID加上此功能
上一张图片有一个edit按钮,选中,
到这一步先放一放;
打开钥匙串,钥匙串访问——>证书助理——>从证书颁发机构请求证书,然后打开如下界面,
回到刚才我们停滞的页面
这里有两个create certificate…,先选第一个,下一步,chooseFiles 然互选择刚才从钥匙串生成的证书,然后点生成generate,点下载;这样一个推送的开发证书就生成了;同样的道理生成push的发布证书;
然后将下载下来的证书安装到钥匙串中,双击就好了,会在钥匙串的我的证书界面看到添加进去的证书,然后进去xcode工程;
在工程中的的Appdelegate.m中的
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions{
- //注册远程通知服务
[application registerUserNotificationSettings:[UIUserNotificationSettings
settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge)
categories:nil]];
[[UIApplication sharedApplication]registerForRemoteNotifications];
}
(void)application:(UIApplication )application didRegisterForRemoteNotificationsWithDeviceToken:(NSData )deviceToken{
//获取deviceToken
NSLog(@”注册远程推送成功——————%@”,deviceToken);
}
真机测试:
前面提到的如果没有调试证书就新生成一个,一下为新生成方法
相关文章推荐
- IOS 开发技巧,小细节,注意事项
- iOS Cocoa编码规范
- iOS开发系列课程(07) --- 分栏视图控制器
- iOS开发系列课程(06) --- 常用控件介绍
- iOS---iPad开发及iPad特有的特技
- ios8绘图方法小记touchesBegan&touchesMoved
- iOS开发 - 汉字转拼音
- IOS 中的页面跳转(navigaitonController)+带自动返回
- iOS开发:Delegate、Notification和KVO的联系与区别
- iOS开发:MVC(模型-视图-控制器)详解
- iOS编程:学习篇(十二)
- iOS数据持久化
- 新浪微博自定制TabBar
- IOS己见之NSDate
- iOS学习篇章3--SEL与@selector
- iOS 笔记六: 协议 Protocols
- IOS开发指南学习——数据持久化(Core Data)
- Installation Failure Troubleshooting for iOS
- 问题:In IOS8 wakeups limit
- iOS应用性能调优的25个建议和技巧