iOS自定义推送消息提示框

2020-01-18 15:40:50刘景俊

#import "GeTuiApilmpl.h"

@implementation GeTuiApilmpl

+ (GeTuiApilmpl *) sharedInstance{
 static id instance = nil;
 static dispatch_once_t onceToken;
 dispatch_once(&onceToken, ^{
  instance = [[self alloc] init];
 });
 return instance;
}

- (id)init {
 self = [super init];
 if (self) {
  NSString *path = [[NSBundle mainBundle] pathForResource:@"libGexin" ofType:@"plist"];
  NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:path];
  [GeTuiSdk startSdkWithAppId:[dic objectForKey:@"GT_APPID"]
        appKey:[dic objectForKey:@"GT_APPKEY"]
       appSecret:[dic objectForKey:@"GT_APPSECRET"]
       delegate:self];
 }
 return self;
}

#pragma mark - GeTuiSdkDelegate
/** SDK启动成功返回cid */
- (void)GeTuiSdkDidRegisterClient:(NSString *)clientId {
 // [4-EXT-1]: 个推SDK已注册,返回clientId
 NSLog(@"n>>>[GeTuiSdk RegisterClient]:%@nn", clientId);
}

/** SDK遇到错误回调 */
- (void)GeTuiSdkDidOccurError:(NSError *)error {
 // [EXT]:个推错误报告,集成步骤发生的任何错误都在这里通知,如果集成后,无法正常收到消息,查看这里的通知。
 NSLog(@"n>>>[GexinSdk error]:%@nn", [error localizedDescription]);
}

/** SDK收到透传消息回调 */
- (void)GeTuiSdkDidReceivePayload:(NSString *)payloadId andTaskId:(NSString *)taskId andMessageId:(NSString *)aMsgId andOffLine:(BOOL)offLine fromApplication:(NSString *)appId {
 // [4]: 收到个推消息
 NSData *payload = [GeTuiSdk retrivePayloadById:payloadId];
 NSString *payloadMsg = nil;
 if (payload) {
  payloadMsg = [[NSString alloc] initWithBytes:payload.bytes length:payload.length encoding:NSUTF8StringEncoding];
 }
 NSString *msg = [NSString stringWithFormat:@" payloadId=%@,taskId=%@,messageId:%@,payloadMsg:%@%@", payloadId, taskId, aMsgId, payloadMsg, offLine ? @"<离线消息>" : @""];
 NSLog(@"n>>>[GexinSdk ReceivePayload]:%@nn", msg);
 /**
  *汇报个推自定义事件
  *actionId:用户自定义的actionid,int类型,取值90001-90999。
  *taskId:下发任务的任务ID。
  *msgId: 下发任务的消息ID。
  *返回值:BOOL,YES表示该命令已经提交,NO表示该命令未提交成功。注:该结果不代表服务器收到该条命令
  **/
 [GeTuiSdk sendFeedbackMessage:90001 taskId:taskId msgId:aMsgId];
}

/** SDK收到sendMessage消息回调 */
- (void)GeTuiSdkDidSendMessage:(NSString *)messageId result:(int)result {
 // [4-EXT]:发送上行消息结果反馈
 NSString *msg = [NSString stringWithFormat:@"sendmessage=%@,result=%d", messageId, result];
 NSLog(@"n>>>[GexinSdk DidSendMessage]:%@nn", msg);
}

/** SDK运行状态通知 */
- (void)GeTuiSDkDidNotifySdkState:(SdkStatus)aStatus {
 // [EXT]:通知SDK运行状态
 NSLog(@"n>>>[GexinSdk SdkState]:%unn", aStatus);
}

/** SDK设置推送模式回调 */
- (void)GeTuiSdkDidSetPushMode:(BOOL)isModeOff error:(NSError *)error {
 if (error) {
  NSLog(@"n>>>[GexinSdk SetModeOff Error]:%@nn", [error localizedDescription]);
  return;
 }
 NSLog(@"n>>>[GexinSdk SetModeOff]:%@nn", isModeOff ? @"开启" : @"关闭");
}

-(void)geTuiRegister{
 
}