极光推送(激光)

  1. 学习链接

    http://docs.jpush.io/guideline/ios_guide/ 

  2. 详细步骤:

    1.进入文档-JPush推送应用中心:https://www.jpush.cn/common/apps/

    2.创建应用:这一步有两个两个证书:一个是开发推送证书和上架应用推送证书,这两个证书配置后面会详细讲解(容易错误地方)

   3.下载SDK,文档也说到(将SDK包解压,在XCode中选择“Add files to 'Your project name'...”,将解压后的lib子文件夹(包含JPUSHService.h、jpush-ios-x.x.x.a)添加到你的工程目录中。)

   4.导入必要框架:(

必要的框架

  • CFNetwork.framework

  • CoreFoundation.framework

  • CoreTelephony.framework

  • SystemConfiguration.framework

  • CoreGraphics.framework

  • Foundation.framework

  • UIKit.framework

  • Security.framework

  • Xcode7需要的是libz.tbd;Xcode7以下版本是libz.dylib

  5.

创建并配置PushConfig.plist文件有两种方式:

2.1.0之前版本是通过plist文件配置,这个我就不截图讲解了,只要创建一个plist文件,增加三个字段就可以了,文档上有,一键copy即可了

但是我们现在是可以通过一个方法直接配置的,方法如下:


/*!
 * @abstract 启动SDK
 *
 * @param launchingOption 启动参数.
 * @param appKey 一个JPush 应用必须的,唯一的标识. 请参考 JPush 相关说明文档来获取这个标识.
 * @param channel 发布渠道. 可选.
 * @param isProduction 是否生产环境. 如果为开发状态,设置为 NO; 如果为生产状态,应改为 YES.
 *
 * @discussion 提供SDK启动必须的参数, 来启动 SDK.
 * 此接口必须在 App 启动时调用, 否则 JPush SDK 将无法正常工作.
 */

[JPUSHService setupWithOption:launchOptions appKey:kJPUSHAppKey channel:kJPUSHChannel apsForProduction:isProduction];


5.添加代码:

2.1.0版本开始,API类名为JPUSHService,不再使用原先的APService。

如果用的是Xcode7时,需要在App项目的plist手动加入以下key和值以支持http传输:

<key>NSAppTransportSecurity</key> 
      <dict> 
  <key>NSAllowsArbitraryLoads</key> 
        <true/> 
    </dict>


    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
      self.window.backgroundColor = [UIColor whiteColor];
      [self.window makeKeyAndVisible];

      // 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];
     }

     // Required
     //如需兼容旧版本的方式,请依旧使用[JPUSHService setupWithOption:launchOptions]方式初始化和同时使用pushConfig.plist文件声明appKey等配置内容。
     [JPUSHService setupWithOption:launchOptions appKey:appKey channel:channel apsForProduction:isProduction];     
        return YES;
  }


- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {

     // Required
     [JPUSHService registerDeviceToken:deviceToken];
  }

  - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

      // Required,For systems with less than or equal to iOS6
     [JPUSHService handleRemoteNotification:userInfo];
  }

  - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {

     // IOS 7 Support Required
     [JPUSHService handleRemoteNotification:userInfo];
     completionHandler(UIBackgroundFetchResultNewData);
  }

  - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {

     //Optional
     NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error); 
  }


6.配置这个地方,不然运行就会有问题


极光推送(激光)_第1张图片


7.进入极光中心:https://www.jpush.cn/push/apps/0942889e8d623bf81d7c185a/push/notification/sent/

        选择你的应用-推送-发送通知-完成了(注意只有当你的程序不在前台的时候才会显示通知的哦


8.配置证书那一块,我后期会给你们详解的,保证你会一次,永远都会的配置证书的哦!关注我博客以后,到时候会及时提醒到你的哦!


9.到时候还给大家一并讲解一下本地推送,超简单超详细!让大家在工作当中不再加班,轻轻松松开发ios,让我们赢取白富美,不在穷屌丝,!











你可能感兴趣的:(推送,极光推送,远程推送,应用推送)