小溪云通信推送功能介紹

本文檔里的接口,適用于LittlecIm.framework(v1.3.2)版本

1. 制作推送證書(shū)

第 1 步:打開(kāi)??蘋(píng)果開(kāi)發(fā)者網(wǎng)站

第 2 步:從 Account 進(jìn)入 Certificates, Identifiers & Profiles。

第 3 步:選擇要制作的推送證書(shū)。

● 對(duì)于開(kāi)發(fā)環(huán)境(sandbox)的推送證書(shū),請(qǐng)選擇 Apple Push Notification service SSL (Sandbox)

● 對(duì)于生產(chǎn)環(huán)境(production)的推送證書(shū),請(qǐng)選擇 Apple Push Notification service SSL (Production)

第 4 步:選擇對(duì)應(yīng)的 APP ID(小溪示例使用 ChatAppDemo,所以此處APP ID選擇 com.cmcchy.xiaoxiApp)。

第 5 步:打開(kāi)鑰匙串訪問(wèn) → 證書(shū)助理 → 從證書(shū)頒發(fā)機(jī)構(gòu)請(qǐng)求證書(shū),根據(jù) Certificate Assistant 的提示,創(chuàng)建 Certificate Request。

第 6 步:上傳上一步中創(chuàng)建的 Certificate Request 文件。

第 7 步:上傳完畢后,推送證書(shū)就被正確生成了,之后我們下載下來(lái)這個(gè)證書(shū),并雙擊導(dǎo)入系統(tǒng)。

2. 上傳推送證書(shū)

第 1 步:打開(kāi)鑰匙串訪問(wèn) → Certificates,我們會(huì)看到有剛剛我們制作好的推送證書(shū)。

導(dǎo)出并保存為 P12 格式并設(shè)置密碼。

第 2 步:登錄??小溪管理后臺(tái)。

第 3 步:輸入了正確的賬號(hào)后,選擇對(duì)應(yīng)的 APP(小溪示例使用 ChatAppDemo,選擇相應(yīng)環(huán)境(沙箱/線上)后點(diǎn)擊“管理”)。

第 4 步:同時(shí)上傳開(kāi)發(fā)環(huán)境證書(shū)和生產(chǎn)環(huán)境證書(shū)。(上傳之前導(dǎo)出的 P12 文件,密碼則為此 P12 文件的密碼)

● 注意:請(qǐng)正確上傳相應(yīng)環(huán)境對(duì)應(yīng)的證書(shū)(創(chuàng)建的是 Apple Push Notification service SSL Sandbox 為開(kāi)發(fā)環(huán)境;Apple Push Notification service SSL Production 為生產(chǎn)環(huán)境)。

3 調(diào)用小溪APNS推送接口

推送模塊接口屬于CMIMPushNotification類,共提供3個(gè)接口供開(kāi)發(fā)者調(diào)用,分別為:傳入deviceToken,訂閱消息推送,取消消息推送。

3.1 傳入deviceToken

調(diào)用此接口向服務(wù)器傳入deviceToken。

/**
 *  @brief   配置推送需要的設(shè)備token
 *
 *  @param  deviceToken 在application的代理方法里獲取到
 */
- (void)configWithDeviceToken:(NSData*)deviceToken;

◆ 首先需要注冊(cè)離線推送:

//iOS8 注冊(cè)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];
}

◆ 注冊(cè)了推送功能,iOS 才會(huì)自動(dòng)回調(diào)以下方法,得到 deviceToken,您需要將 deviceToken 傳給 SDK。

// 將得到的deviceToken傳給SDK
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:
(NSData *)deviceToken
{
     //獲取終端設(shè)備標(biāo)識(shí),服務(wù)器端推送消息到APNS時(shí)需要知道終端的標(biāo)識(shí),APNS通過(guò)注冊(cè)的終端標(biāo)識(shí)找到終端設(shè)備
    [[CMIMPushNotification defaultManager]configWithDeviceToken:deviceToken];
}
 
// 注冊(cè)deviceToken失敗
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:
(NSError *)error
{
    NSLog(@"error -- %@",error);
}
● APNS 注冊(cè)失敗,一般是由于使用了通用證書(shū)或者是模擬器調(diào)試導(dǎo)致,請(qǐng)檢查證書(shū)并用真機(jī)調(diào)試。此處是 iOS 系統(tǒng)報(bào)的錯(cuò),
  如仍不能確定,請(qǐng)從網(wǎng)上查找相關(guān)資料。

3.2 訂閱消息推送

調(diào)用此接口向服務(wù)器訂閱消息推送。

/**
 *  訂閱推送
 *
 *  @param bProductCrtType    推送證書(shū)類型: YES為product證書(shū)類型(發(fā)布用), NO為develop證書(shū)類型(開(kāi)發(fā)調(diào)試用)
 *  @param subscribeSucessful 訂閱成功回調(diào)
 *  @param subscribeFail      訂閱失敗回調(diào)
 */
- (void)subscribePushNotification:(BOOL)bProductCrtType 
              subscribeSuccessful:(subscribeSucessful)subscribeSucessful 
                    subscribeFail:(subscribeFail)subscribeFail;

調(diào)用示例(一般在登錄成功后調(diào)用):

//訂閱推送通知
[[CMIMPushNotification defaultManager] subscribePushNotification:YES subscribeSuccessful:^{
            NSLog(@"subscribePushNotification successful!);
 } subscribeFail:^(NSString *error) {
            NSLog(@"subscribePushNotification error:%@",error);
 }];

3.3 取消消息推送

調(diào)用此接口向服務(wù)器取消消息推送。

/**
 *  取消消息推送
 */
- (void)cancelPushNotification;

調(diào)用示例(一般在賬號(hào)退出后調(diào)用):

 [[CMIMPushNotification defaultManager] cancelPushNotification];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 極光推送: 1.JPush當(dāng)前版本是1.8.2,其SDK的開(kāi)發(fā)除了正常的功能完善和擴(kuò)展外也緊隨蘋(píng)果官方的步伐,SD...
    Isspace閱讀 6,884評(píng)論 10 16
  • 原文:http://hechen.info/2015/07/30/iOS-Push-Notification/ 最...
    羊大果閱讀 3,039評(píng)論 0 8
  • 不同版本極光推送SDK集成各有差異,集成時(shí)一定要注意版本號(hào),樓主已將博文更新成最新的SDK JPush v3.0....
    i順頌時(shí)宜閱讀 8,018評(píng)論 37 170
  • 最近一段時(shí)間工作量比較大, 抽不出時(shí)間來(lái)整理博客, 趁今天任務(wù)量較小的時(shí)候整理下關(guān)于環(huán)信推送的問(wèn)題, 介紹. 集成...
    imGeek閱讀 2,839評(píng)論 1 3
  • 許多事情真的要等到經(jīng)歷過(guò)才知道,原來(lái)我的內(nèi)心如此不平靜,都是后來(lái)和你在一起后,都說(shuō)女孩子總是在一瞬間長(zhǎng)大,在20出...
    阮Lisa閱讀 153評(píng)論 0 0

友情鏈接更多精彩內(nèi)容