今天检查自己的代码的时候发现AppDelegate中的代码太多了,并且有优化的空间,因此就优化了自己的代码,下面是主要代码:
GitHub下载地址:https://github.com/shuilanjianyue/JPushTest
PushEncapsulation.h
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface PushEncapsulation : NSObject
+(instancetype)shareJPushManger;
// 在应用启动的时候调用
- (void)setupWithOption:(NSDictionary *)launchingOption
appKey:(NSString *)appKey
channel:(NSString *)channel
apsForProduction:(BOOL)isProduction
advertisingIdentifier:(NSString *)advertisingId;
// 在appdelegate注册设备处调用
- (void)registerDeviceToken:(NSData *)deviceToken;
//设置角标
- (void)setBadge:(int)badge;
//获取注册ID
- (void)getRegisterIDCallBack:(void(^)(NSString *registerID))completionHandler;
//处理推送信息
- (void)handleRemoteNotification:(NSDictionary *)remoteInfo;
//处理跳转
- (void)getUserDic:(NSDictionary *)userDic;
PushEncapsulation.m
#import "PushEncapsulation.h"
#import "JPUSHService.h"
// iOS10注册APNs所需头文件
#ifdef NSFoundationVersionNumber_iOS_9_x_Max
#import <UserNotifications/UserNotifications.h>
#endif
#import "CourseEduController.h" //分类课程列表
#import "CourseDetailController.h"//课程详情
#import "RegisterController.h"//注册
#import "LoginController.h"//登录
#import "WenDaDetailController.h"//问答详情页
#import "BaseWebController.h"
#import "ScheduleDetailController.h" //课表详情
#import "MySingleController.h" //个人资料