借阅:极光推送进行远程推送
怎么使用极光推送进行远程推送
在极光官网注册极光推送
创建一个应用
在应用配置中导入两个证书(我这是已经验证了的,不然就是让你上传证书的按钮)Bundle ID是导入证书后自动出现的,证书最好一个一个上传不然可能会出现验证失败的问题.
然后下载SDK
把SDK中的Lib文件夹导入你的项目中,记得勾选Copy记得勾选Copy
在Build Phases中导入以下库
在Build Phases中导入以下库
修改Capabilities
打开Background Modes
修改Bundle ID 以及选择Team
修改Bundle ID 以及选择Team
下面便是代码部分
在Appdelegate.m
中导入头文件#import "JPUSHService.h"
在didFinishLaunchingWithOptions
方法中写入以下代码,有的地方要按你自己的信息填
// Required
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0)
{
//可以添加自定义categories
[JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |UIUserNotificationTypeSound
|UIUserNotificationTypeAlert)categories:nil];
}
else
{
//categories 必须为nil
[JPUSHService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeSound
|UIRemoteNotificationTypeAlert)categories:nil];
}
[JPUSHService setupWithOption:launchOptions appKey:你的appKey(字符串),
在极光的应用详情中可以看到" channel:@""(这个不填就行) apsForProduction:这个值生产环境为YES,开发环境为NO(BOOL值)];
实现-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
在该方法中注册设备
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
//这个方法是设置别名和tag 可省
// [JPUSHService setTags:nil alias:@"WzxJiang"
//fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) {
// NSLog(@"rescode: %d, \ntags: %@, \nalias: %@\n", iResCode, iTags , iAlias);// }];
// Required
[JPUSHService registerDeviceToken:deviceToken];
}
实现- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
App在后台时收到推送时的处理
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
//iOS 7及之后才能用,现在没人适配iOS6了吧...
// IOS 7 Support Required
[JPUSHService handleRemoteNotification:userInfo];
completionHandler(UIBackgroundFetchResultNewData);
}
在applicationWillEnterForeground
方法(App即将进入前台)中将小红点清除
- (void)applicationWillEnterForeground:(UIApplication *)application
{
NSLog(@"进入前台");
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
}
创建didFailToRegisterForRemoteNotificationsWithError
方法,处理接收推送错误的情况(一般不会...)
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
//Optional
NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error);
}
代码都已经弄好了,现在推送以下,(注意只能是真机调试)在极光上点击发送通知,注意是开发环境点击发送通知,注意是开发环境
然后你就能收到推送了然后你就能收到推送了
文/WzxJiang(简书作者)原文链接:http://www.jianshu.com/p/469bf2a7b16f/comments/1567154著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。