标签:
原文:http://m.blog.csdn.net/article/details?id=38824551
1.先创建一个apns证书,链接如下
http://developer.easemob.com/docs/emchat/ios/push/certificate.html
创建完证书后,将证书弄成p12文件,然后上传到环信后台
2.再创建真机调试证书,和描述文件,保证能进行真机调试。并且appid要又推送功能
3.绑定环信证书和appkey
//注册 APNS文件的名字, 需要与后台上传证书时的名字一一对应 NSString *apnsCertName = @"chatdemo"; [[EaseMob sharedInstance] registerSDKWithAppKey:@“4545521” apnsCertName:apnsCertName]; [[EaseMob sharedInstance] enableBackgroundReceiveMessage]; [[EaseMob sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
4.然后实现环信的几个方法
// 收到消息回调 -(void)didReceiveMessage:(EMMessage *)message{ #if !TARGET_IPHONE_SIMULATOR [self playSoundAndVibration]; BOOL isAppActivity = [[UIApplication sharedApplication] applicationState] == UIApplicationStateActive; if (!isAppActivity) { [self showNotificationWithMessage:message]; } #endif } - (void)playSoundAndVibration{ //如果距离上次响铃和震动时间太短, 则跳过响铃 NSLog(@"%@, %@", [NSDate date], self.lastPlaySoundDate); NSTimeInterval timeInterval = [[NSDate date] timeIntervalSinceDate:self.lastPlaySoundDate]; if (timeInterval < kDefaultPlaySoundInterval) { return; } //保存最后一次响铃时间 self.lastPlaySoundDate = [NSDate date]; // 收到消息时,播放音频 [[EaseMob sharedInstance].deviceManager asyncPlayNewMessageSound]; // 收到消息时,震动 [[EaseMob sharedInstance].deviceManager asyncPlayVibration]; } - (void)showNotificationWithMessage:(EMMessage *)message{ id<IEMMessageBody> messageBody = [message.messageBodies firstObject]; NSString *messageStr = nil; switch (messageBody.messageBodyType) { case eMessageBodyType_Text: { messageStr = ((EMTextMessageBody *)messageBody).text; } break; case eMessageBodyType_Image: { messageStr = @"[图片]"; } break; case eMessageBodyType_Location: { messageStr = @"[位置]"; } break; case eMessageBodyType_Voice: { messageStr = @"[音频]"; } break; case eMessageBodyType_Video:{ messageStr = @"[视频]"; } break; default: break; } //发送本地推送 UILocalNotification *notification = [[UILocalNotification alloc] init]; notification.fireDate = [NSDate date]; //触发通知的时间 NSString *title = message.from; if (message.isGroup) { NSArray *groupArray = [[EaseMob sharedInstance].chatManager groupList]; for (EMGroup *group in groupArray) { if ([group.groupId isEqualToString:message.conversation.chatter]) { title = [NSString stringWithFormat:@"%@(%@)", message.groupSenderName, group.groupSubject]; break; } } } notification.alertBody = [NSString stringWithFormat:@"%@:%@", title, messageStr]; notification.alertAction = @"打开"; notification.timeZone = [NSTimeZone defaultTimeZone]; notification.soundName = UILocalNotificationDefaultSoundName; //发送通知 [[UIApplication sharedApplication] scheduleLocalNotification:notification]; UIApplication *application = [UIApplication sharedApplication]; application.applicationIconBadgeNumber += 1; }
这样就可以进行消息推送了
标签:
原文地址:http://www.cnblogs.com/XYQ-208910/p/5447751.html