本文档里的接口,适用于LittlecIm.framework(v1.3.2)版本
1. 制作推送证书
第 1 步:打开🌍苹果开发者网站。
第 2 步:从 Account 进入 Certificates, Identifiers & Profiles。
第 3 步:选择要制作的推送证书。
● 对于开发环境(sandbox)的推送证书,请选择 Apple Push Notification service SSL (Sandbox)
● 对于生产环境(production)的推送证书,请选择 Apple Push Notification service SSL (Production)
第 4 步:选择对应的 APP ID(小溪示例使用 ChatAppDemo,所以此处APP ID选择 com.cmcchy.xiaoxiApp)。
第 5 步:打开钥匙串访问 → 证书助理 → 从证书颁发机构请求证书,根据 Certificate Assistant 的提示,创建 Certificate Request。
第 6 步:上传上一步中创建的 Certificate Request 文件。
第 7 步:上传完毕后,推送证书就被正确生成了,之后我们下载下来这个证书,并双击导入系统。
2. 上传推送证书
第 1 步:打开钥匙串访问 → Certificates,我们会看到有刚刚我们制作好的推送证书。
导出并保存为 P12 格式并设置密码。
第 2 步:登录🌍小溪管理后台。
第 3 步:输入了正确的账号后,选择对应的 APP(小溪示例使用 ChatAppDemo,选择相应环境(沙箱/线上)后点击“管理”)。
第 4 步:同时上传开发环境证书和生产环境证书。(上传之前导出的 P12 文件,密码则为此 P12 文件的密码)
● 注意:请正确上传相应环境对应的证书(创建的是 Apple Push Notification service SSL Sandbox 为开发环境;Apple Push Notification service SSL Production 为生产环境)。
3 调用小溪APNS推送接口
推送模块接口属于CMIMPushNotification类,共提供3个接口供开发者调用,分别为:传入deviceToken,订阅消息推送,取消消息推送。
3.1 传入deviceToken
调用此接口向服务器传入deviceToken。
/**
* @brief 配置推送需要的设备token
*
* @param deviceToken 在application的代理方法里获取到
*/
- (void)configWithDeviceToken:(NSData*)deviceToken;
◆ 首先需要注册离线推送:
//iOS8 注册APNS
if ([application respondsToSelector:@selector(registerForRemoteNotifications)])
{
[application registerForRemoteNotifications];
UIUserNotificationType notificationTypes = UIUserNotificationTypeBadge |
UIUserNotificationTypeSound |
UIUserNotificationTypeAlert;
UIUserNotificationSettings *settings = [UIUserNotificationSettings
settingsForTypes:notificationTypes categories:nil];
[application registerUserNotificationSettings:settings];
}
else
{
UIRemoteNotificationType notificationTypes = UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound |
UIRemoteNotificationTypeAlert;
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:notificationTypes];
}
◆ 注册了推送功能,iOS 才会自动回调以下方法,得到 deviceToken,您需要将 deviceToken 传给 SDK。
// 将得到的deviceToken传给SDK
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:
(NSData *)deviceToken
{
//获取终端设备标识,服务器端推送消息到APNS时需要知道终端的标识,APNS通过注册的终端标识找到终端设备
[[CMIMPushNotification defaultManager]configWithDeviceToken:deviceToken];
}
// 注册deviceToken失败
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:
(NSError *)error
{
NSLog(@"error -- %@",error);
}
● APNS 注册失败,一般是由于使用了通用证书或者是模拟器调试导致,请检查证书并用真机调试。此处是 iOS 系统报的错,
如仍不能确定,请从网上查找相关资料。
3.2 订阅消息推送
调用此接口向服务器订阅消息推送。
/**
* 订阅推送
*
* @param bProductCrtType 推送证书类型: YES为product证书类型(发布用), NO为develop证书类型(开发调试用)
* @param subscribeSucessful 订阅成功回调
* @param subscribeFail 订阅失败回调
*/
- (void)subscribePushNotification:(BOOL)bProductCrtType
subscribeSuccessful:(subscribeSucessful)subscribeSucessful
subscribeFail:(subscribeFail)subscribeFail;
调用示例(一般在登录成功后调用):
//订阅推送通知
[[CMIMPushNotification defaultManager] subscribePushNotification:YES subscribeSuccessful:^{
NSLog(@"subscribePushNotification successful!);
} subscribeFail:^(NSString *error) {
NSLog(@"subscribePushNotification error:%@",error);
}];
3.3 取消消息推送
调用此接口向服务器取消消息推送。
/**
* 取消消息推送
*/
- (void)cancelPushNotification;
调用示例(一般在账号退出后调用):
[[CMIMPushNotification defaultManager] cancelPushNotification];
网友评论