遠程推送應(yīng)用配置過程

遠程推送應(yīng)用配置過程

1. 創(chuàng)建支持遠程推送功能的App ID

2. 創(chuàng)建調(diào)試證書,并選中剛剛創(chuàng)建的App ID

3. 下載CER文件,并導(dǎo)入鑰匙串管理

4. 創(chuàng)建發(fā)布證書,并選中剛剛創(chuàng)建的App ID

5. 下載CER文件,并導(dǎo)入鑰匙串管理

6. 檢查App ID,確認(rèn)證書已經(jīng)指定

7. 生成描述文件

格式:{"aps":{"alert":"This is some fancy message.","badge":1,"sound":"default"}}

遠程推送應(yīng)用程序開發(fā)過程

1. 新建應(yīng)用程序

2. 指定AppID,在developer.apple.com上設(shè)置的AppID

if(系統(tǒng)版本 >= 8.0)

{

// 注冊接收通知的類型

UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];

[application registerUserNotificationSettings:settings];

// 注冊允許接收遠程推送通知

[application registerForRemoteNotifications];

}

else

{

// 如果是iOS7.0,使用以下方法注冊

[application registerForRemoteNotificationTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound];

}

// 當(dāng)?shù)玫教O果的APNs服務(wù)器返回的DeviceToken就會被調(diào)用

// 7040f7d5 5a974598 c5cf31b5 3e340b39 68affd25 122f0ce1 3f315226 396c2e5b

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {

NSLog(@"deviceToken是:%@", deviceToken);

}

// 接收到遠程通知,觸發(fā)方法和本地通知一致

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

NSLog(@"%@", userInfo);

}

*** 使用后臺的遠程消息推送

1> 在Capabilities中打開遠程推送通知

2> 實現(xiàn)代理方法

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

遠程消息數(shù)據(jù)格式:

{"aps" : {"content-available" : 1},"content-id" : 42}

執(zhí)行completionHandler有兩個目的

1> 系統(tǒng)會估量App消耗的電量,并根據(jù)傳遞的UIBackgroundFetchResult 參數(shù)記錄新數(shù)據(jù)是否可用

2> 調(diào)用完成的處理代碼時,應(yīng)用的界面縮略圖會自動更新

注意:接收到遠程通知到執(zhí)行完網(wǎng)絡(luò)請求之間的時間不能超過30秒

if (userInfo) {

int contentId = [userInfo[@"content-id"] intValue];

ViewController *vc = (ViewController *)application.keyWindow.rootViewController;

[vc loadDataWithContentID:contentId completion:^(NSArray *dataList) {

vc.dataList = dataList;

NSLog(@"刷新數(shù)據(jù)結(jié)束");

completionHandler(UIBackgroundFetchResultNewData);

}];

} else {

completionHandler(UIBackgroundFetchResultNoData);

}

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

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

  • //聯(lián)系人:石虎 QQ: 1224614774 昵稱:嗡嘛呢叭咪哄 遠程推送應(yīng)用配置過程1. 創(chuàng)建支持遠程推送功能...
    石虎132閱讀 421評論 0 16
  • 今天,總結(jié)一下關(guān)于遠程推送的配置及開發(fā)過程. 遠程推送應(yīng)用配置過程 1. 創(chuàng)建支持遠程推送功能的App ID 2....
    藍心兒的藍色之旅閱讀 431評論 0 0
  • 極光推送: 1.JPush當(dāng)前版本是1.8.2,其SDK的開發(fā)除了正常的功能完善和擴展外也緊隨蘋果官方的步伐,SD...
    Isspace閱讀 6,869評論 10 16
  • 一、推送通知 注意:這里說的推送通知跟NSNotification有所區(qū)別NSNotification是抽象的,不...
    Mg明明就是你閱讀 1,307評論 0 17
  • //聯(lián)系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄 遠程推送應(yīng)用配置過程 1.創(chuàng)建支持遠程推送功能的A...
    石虎132閱讀 169評論 0 15

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