极光推送进行远程推送

借阅:极光推送进行远程推送

怎么使用极光推送进行远程推送

极光官网注册极光推送
创建一个应用
在应用配置中导入两个证书(我这是已经验证了的,不然就是让你上传证书的按钮)Bundle ID是导入证书后自动出现的,证书最好一个一个上传不然可能会出现验证失败的问题.

导入两个证书

然后下载SDK

把SDK中的Lib文件夹导入你的项目中,记得勾选Copy

记得勾选Copy

在Build Phases中导入以下库

在Build Phases中导入以下库

修改Capabilities

打开远程推送
打开远程推送

打开Background Modes

打开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著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 不同版本极光推送SDK集成各有差异,集成时一定要注意版本号,楼主已将博文更新成最新的SDK JPush v3.0....
    i顺颂时宜阅读 7,909评论 37 170
  • 如果app需要开启远程推送功能,自己写下来就会相对较麻烦,所以我选择了极光推送 一.证书下载 这里的证书,是创建开...
    iOS_July阅读 458评论 0 0
  • 极光推送: 1.JPush当前版本是1.8.2,其SDK的开发除了正常的功能完善和扩展外也紧随苹果官方的步伐,SD...
    Isspace阅读 6,792评论 10 16
  • 前言 iOS10下,远程推送发生了变化,新增的UserNotifications.framework将本地推送和远...
    夭Y夭阅读 1,145评论 2 10
  • 2017.05.24 大牌12号 倒吊人 看到牌,觉得前不久抽到过,又抽到,看来还要继续修炼啊,练功不能断。牌面人...
    塔罗咨询师Sophia阅读 332评论 0 0