極光推送-iOS SDK 集成指南

極光推送(JPush)是一個(gè)端到端的推送服務(wù),使得服務(wù)器端消息能夠及時(shí)地推送到終端用戶手機(jī)上,讓開(kāi)發(fā)者積極地保持與用戶的連接趁餐,從而提高用戶活躍度、提高應(yīng)用的留存率麸祷。極光推送客戶端支持 Android, iOS 兩個(gè)平臺(tái)澎怒。
本 iOS SDK 方便開(kāi)發(fā)者基于 JPush 來(lái)快捷地為 iOS App 增加推送功能,減少集成 APNs 需要的工作量阶牍、開(kāi)發(fā)復(fù)雜度喷面。

創(chuàng)建并配置PushConfig.plist文件

調(diào)用代碼

監(jiān)聽(tīng)系統(tǒng)事件,相應(yīng)地調(diào)用 JPush SDK 提供的 API 來(lái)實(shí)現(xiàn)功能走孽。

static NSString *appKey = @""; // 申請(qǐng)應(yīng)用成功以后官方會(huì)提供給你
static NSString *channel = @"Publish channel";
static BOOL isProduction = FALSE;
#import "JPUSHService.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.

    // 極光推送
    // Override point for customization after application launch.
    if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
        // 可以添加自定義categories
        [JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
                                                          UIUserNotificationTypeSound |
                                                          UIUserNotificationTypeAlert)
                                              categories:nil];
    } else {
        // categories 必須為nil
        [JPUSHService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
                                                          UIRemoteNotificationTypeSound |
                                                          UIRemoteNotificationTypeAlert)
                                              categories:nil];
    }
    // AppKey : 是你在極光推送申請(qǐng)下來(lái)的appKey Jchannel : 可以直接設(shè)置默認(rèn)值即可 Publish channel
    [JPUSHService setupWithOption:launchOptions appKey:appKey
                          channel:channel apsForProduction:isProduction];

    return YES;
}
#pragma mark -  JPushSDK調(diào)用代碼
 - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
     // Required
     [JPUSHService registerDeviceToken:deviceToken];
 }

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    // Required,For systems with less than or equal to iOS6
    [JPUSHService handleRemoteNotification:userInfo];
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    
    NSString *alert = [[userInfo objectForKey:@"aps"] objectForKey:@"alert"];
    if (application.applicationState == UIApplicationStateActive) {
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"推送消息"
                                                            message:alert
                                                           delegate:self
                                                  cancelButtonTitle:@"OK"
                                                  otherButtonTitles:nil];
        [alertView show];
    }
    [application setApplicationIconBadgeNumber:0];
    
    // IOS 7 Support Required
    [JPUSHService handleRemoteNotification:userInfo];
    completionHandler(UIBackgroundFetchResultNewData);
}

 - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
     //Optional
     NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error);
 }

用于綁定Alias的,使用NSString即可

// 用于綁定Alias的,使用NSString即可
[JPUSHService setAlias:self.uName.text callbackSelector:nil object:self];

注冊(cè)接收自定義消息

   // application didFinishLaunchingWithOptions
   // 獲取iOS的推送內(nèi)容需要在delegate類中注冊(cè)通知并實(shí)現(xiàn)回調(diào)方法惧辈。
   // 注冊(cè)接收自定義消息的通知
    NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];
    [defaultCenter addObserver:self selector:@selector(networkDidReceiveMessage:) name:kJPFNetworkDidReceiveMessageNotification object:nil];
// 實(shí)現(xiàn)回調(diào)方法 networkDidReceiveMessage
- (void)networkDidReceiveMessage:(NSNotification *)notification {
    NSLog(@"收到了自定義信息");
    NSDictionary *userInfo = [notification userInfo];
    NSString    *content = [userInfo valueForKey:@"content"];  // 獲取推送的內(nèi)容
    NSDictionary *extras = [userInfo valueForKey:@"extras"];   // 獲取用戶自定義參數(shù)
    
    NSLog(@"extras = %@",extras);
    NSLog(@"content = %@",content);
    // 建立本地通知,如果程序在后臺(tái)的時(shí)候也會(huì)收到推送通知一樣的消息。也可以判斷在程序在前臺(tái)的時(shí)候做一些特別的操作磕瓷。
    
    if ([content  isEqual: @"updatelocation2"]) {
        // 立即上傳此時(shí)位置
        NSLog(@"立即上傳此時(shí)位置");
        // 延時(shí)執(zhí)行
        [self performSelector:@selector(autoSubmitLocation) withObject:nil afterDelay:1.0f];
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盒齿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子困食,更是在濱河造成了極大的恐慌边翁,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硕盹,死亡現(xiàn)場(chǎng)離奇詭異符匾,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)瘩例,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門啊胶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人垛贤,你說(shuō)我怎么就攤上這事焰坪。” “怎么了聘惦?”我有些...
    開(kāi)封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵某饰,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)露乏,這世上最難降的妖魔是什么碧浊? 我笑而不...
    開(kāi)封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮瘟仿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘比勉。我一直安慰自己劳较,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布浩聋。 她就那樣靜靜地躺著观蜗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪衣洁。 梳的紋絲不亂的頭發(fā)上墓捻,一...
    開(kāi)封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音坊夫,去河邊找鬼砖第。 笑死,一個(gè)胖子當(dāng)著我的面吹牛环凿,可吹牛的內(nèi)容都是我干的梧兼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼智听,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼羽杰!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起到推,我...
    開(kāi)封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤考赛,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后莉测,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颜骤,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年悔雹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了复哆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腌零,死狀恐怖梯找,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情益涧,我是刑警寧澤锈锤,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響久免,放射性物質(zhì)發(fā)生泄漏浅辙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一阎姥、第九天 我趴在偏房一處隱蔽的房頂上張望记舆。 院中可真熱鬧,春花似錦呼巴、人聲如沸泽腮。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)诊赊。三九已至,卻和暖如春府瞄,著一層夾襖步出監(jiān)牢的瞬間碧磅,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工遵馆, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鲸郊,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓团搞,卻偏偏與公主長(zhǎng)得像严望,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子逻恐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 版本記錄 前言 ??現(xiàn)在很多APP都有推送功能像吻,其中極光推送就是很多APP的首選。我們最近的幾個(gè)APP也是用的極光...
    刀客傳奇閱讀 8,383評(píng)論 0 8
  • 極光推送: 1.JPush當(dāng)前版本是1.8.2复隆,其SDK的開(kāi)發(fā)除了正常的功能完善和擴(kuò)展外也緊隨蘋果官方的步伐拨匆,SD...
    Isspace閱讀 6,719評(píng)論 10 16
  • 版本記錄 前言 ??前一篇已經(jīng)對(duì)極光推送產(chǎn)品架構(gòu)和服務(wù)進(jìn)行了介紹,這一篇?jiǎng)t只對(duì)ios客戶端的集成和使用等狀況進(jìn)行了...
    刀客傳奇閱讀 1,132評(píng)論 0 0
  • 版本記錄 前言 前一篇已經(jīng)對(duì)ios新特性進(jìn)行了介紹挽拂,這一篇?jiǎng)t對(duì)ios的SDK進(jìn)行說(shuō)明惭每。1. 極光推送集成(一)2....
    刀客傳奇閱讀 1,297評(píng)論 0 1
  • 推送技術(shù)產(chǎn)生場(chǎng)景: --服務(wù)器端主動(dòng)性: 客戶端與服務(wù)器交互都是客戶端主動(dòng)的, 服務(wù)器一般不能主動(dòng)與客戶端進(jìn)行數(shù)據(jù)...
    原軍鋒閱讀 34,601評(píng)論 4 60