欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS學(xué)習(xí)筆記之遠(yuǎn)程推送、靜默推送與自定義消息推送

 更新時(shí)間:2018年08月15日 09:45:28   作者:冰風(fēng)v落葉  
推送是各位iOS開發(fā)者們都會遇到的一個(gè)功能,下面這篇文章主要給大家介紹了關(guān)于iOS學(xué)習(xí)筆記之遠(yuǎn)程推送、靜默推送與自定義消息推送的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

遠(yuǎn)程推送時(shí) , 應(yīng)用可能處于下列三種狀態(tài):

     (1) . 應(yīng)用開啟時(shí) , 應(yīng)用在前臺

    (2) . 應(yīng)用開啟時(shí) , 應(yīng)用在后臺

    (3) . 應(yīng)用未啟動(應(yīng)用被殺死)

從蘋果APNS服務(wù)器遠(yuǎn)程推送時(shí):

1 . 如果應(yīng)用處于 (1) 狀態(tài) , 則不會發(fā)出聲音 , 會直接調(diào)用appDelegate的代理方法didReceiveRemoteNotification,此時(shí)如果想收到類似系統(tǒng)的彈窗提示,則需要自定義彈窗,提示音,振動(彈窗可以參考 : ForeNotification  (本地下載))

AudioServicesPlaySystemSound(1007);//系統(tǒng)提示音
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);//震動

2 . 如果應(yīng)用處于 (2) 狀態(tài) , 則會發(fā)出提示音, 點(diǎn)擊推送消息 , 則會調(diào)用appDelegate的代理方法didReceiveRemoteNotification

3 . 如果應(yīng)用處于 (3) 狀態(tài),則會發(fā)出提示音 , 點(diǎn)擊推送消息 , 則會開啟應(yīng)用 , 在下面這個(gè)方法中會帶上launchOptions這個(gè)參數(shù),如果實(shí)現(xiàn)了application:didReceiveRemoteNotification:fetchCompletionHandler:這個(gè)方法,則會調(diào)用這個(gè)方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
 NSDictionary *remoteNotification = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];

 if (remoteNotification) {
 //自定義的BOOL值,用來標(biāo)記是從通知啟動的應(yīng)用
 self.isLaunchedByNotification = YES;
 }else{

 }
 [self checkIsLaunchedByNotification];

 return YES;
}

收到遠(yuǎn)程推送后 , 可以跳轉(zhuǎn)到消息界面 :

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
 NSDictionary *aps = [userInfo valueForKey:@"aps"];

 NSDictionary *alert = [aps valueForKey:@"alert"];

 NSString * body = alert[@"body"];

 if ([UIApplication sharedApplication].applicationState == UIApplicationStateActive) {
 //處于前臺時(shí)
 
 [EBForeNotification handleRemoteNotification:@{@"aps":@{@"alert":[NSString stringWithFormat:@"%@",body]}} soundID:1312];
 
 }else{
 
 //處于后臺時(shí)
 
 [self gotoMessageVC];
 }
}

#pragma mark - 檢測是否從通知欄啟動得應(yīng)用

- (void)checkIsLaunchedByNotification{
 
 if (self.isLaunchedByNotification) {
 
 [self gotoMessageVC];
 
 }
}

#pragma mark - 點(diǎn)擊了通知菜單(當(dāng)應(yīng)用在前臺時(shí),收到推送,點(diǎn)擊了自定義的彈窗,調(diào)用的方法)

- (void)clickBannerView:(NSNotification *)notification{
 
 NSDictionary * dict = notification.object;
 
 [self gotoMessageVC];
}

#pragma mark - 跳轉(zhuǎn)到消息界面(點(diǎn)擊通知菜單/點(diǎn)擊通知欄啟動應(yīng)用時(shí))

- (void)gotoMessageVC{
 
 if([self.window.rootViewController isEqual:self.tabBarController]){
 
 if([self.tabBarController.selectedViewController isKindOfClass:[UINavigationController class]]){
  UINavigationController * nav = self.tabBarController.selectedViewController;
  
  if (![nav.topViewController isKindOfClass:[MessagesViewController class]]) {
  
  MessagesViewController *messageVC = [[MessagesViewController alloc] init];
  
  messageVC.hidesBottomBarWhenPushed = YES;
  
  [nav.visibleViewController.navigationController pushViewController:messageVC animated:YES];
  }
 }
 }
}

靜默推送

應(yīng)用想收到靜默推送需要滿足的條件:

1.應(yīng)用在前臺/后臺 (應(yīng)用被殺死就收不到了)

2.應(yīng)用實(shí)現(xiàn)了

application:didReceiveRemoteNotification:fetchCompletionHandler:

3.如果僅僅實(shí)現(xiàn)了application:didReceiveRemoteNotification:,沒有實(shí)現(xiàn)application:didReceiveRemoteNotification:fetchCompletionHandler:,應(yīng)用只有在前臺時(shí)才能收到靜默推送 , 應(yīng)用在后臺時(shí),收不到靜默推送

自定義消息推送

介紹: 極光推送提供了自定義消息推送 , 這種推送只有當(dāng)應(yīng)用在 前臺 時(shí)才能收到 ; 當(dāng)應(yīng)用在 后臺/被殺死 時(shí),這時(shí)候的自定義消息被保存下來,直到應(yīng)用處于前臺時(shí),應(yīng)用才會收到.

使用場景: 當(dāng)需要在前臺處理大量數(shù)據(jù)的時(shí)候,可以使用自定義消息,例如應(yīng)用某個(gè)模塊需要更新了,這時(shí)候后臺發(fā)送個(gè)自定義消息,等到應(yīng)用啟動了就可以自動去下載

 // 使用自定義消息,需要在通知中心注冊
 // 注冊通知
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveJPushCustomMessage:) name:kJPFNetworkDidReceiveMessageNotification object:nil];

// 接收到JPush的自定義消息推送
- (void)receiveJPushCustomMessage:(NSNotification *)notification {
 
 NSDictionary *userInfo = [notification userInfo];
 
 NSString *title = [userInfo valueForKey:@"title"];
 
 NSString *content = [userInfo valueForKey:@"content"];
 
 NSDictionary *extra = [userInfo valueForKey:@"extras"];
 
}

總結(jié):

1.應(yīng)用在后臺/前臺/被殺死,都可以收到普通的遠(yuǎn)程推送

2.應(yīng)用被殺死時(shí),可以通過Background Fetch短時(shí)間喚醒應(yīng)用

3.應(yīng)用在后臺/前臺時(shí),可以通過靜默推送,修改一些數(shù)據(jù)

4.自定義消息應(yīng)用在

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • iOS獲取圖片區(qū)域主色的方法

    iOS獲取圖片區(qū)域主色的方法

    這篇文章主要為大家詳細(xì)介紹了iOS獲取圖片區(qū)域主色的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • iOS自定義滑桿效果

    iOS自定義滑桿效果

    這篇文章主要為大家詳細(xì)介紹了iOS自定義滑桿效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • iOS中自定義彈出pickerView效果(DEMO)

    iOS中自定義彈出pickerView效果(DEMO)

    這篇文章主要介紹了iOS中自定義簡單彈出pickerView(DEMO)的實(shí)例代碼,需要的朋友可以參考下
    2017-01-01
  • Xcode使用教程詳細(xì)講解(全)

    Xcode使用教程詳細(xì)講解(全)

    本文介紹的是Xcode使用教程詳細(xì)講解,Xcode是一個(gè)款強(qiáng)大的IDE開發(fā)環(huán)境,就像你在寫Windows程序時(shí)需要VS2005一樣 需要要Xcode為你寫Mac程序提供環(huán)境
    2015-07-07
  • 詳解iOS App中UIPickerView滾動選擇欄的添加方法

    詳解iOS App中UIPickerView滾動選擇欄的添加方法

    UIPickerView組件在應(yīng)用中選擇地區(qū)等方面的運(yùn)用非常常見,能夠提供多列的選擇項(xiàng),下買呢我們就來詳解iOS App中UIPickerView滾動選擇欄的添加方法
    2016-05-05
  • IOS實(shí)現(xiàn)簽到特效(散花效果)的實(shí)例代碼

    IOS實(shí)現(xiàn)簽到特效(散花效果)的實(shí)例代碼

    這篇文章主要介紹了IOS實(shí)現(xiàn)簽到特效(散花效果)的實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • iOS UISegmentControl實(shí)現(xiàn)自定義分欄效果

    iOS UISegmentControl實(shí)現(xiàn)自定義分欄效果

    這篇文章主要為大家詳細(xì)介紹了iOS UISegmentControl實(shí)現(xiàn)自定義分欄效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • iOS 圖片壓縮方法的示例代碼

    iOS 圖片壓縮方法的示例代碼

    本篇文章主要介紹了iOS 圖片壓縮方法的示例代碼,主要有兩種壓縮圖片的方法,有興趣的可以了解一下,有興趣的可以了解一下。
    2017-01-01
  • iOS開發(fā)驗(yàn)證判斷語句之正則表達(dá)式小結(jié)

    iOS開發(fā)驗(yàn)證判斷語句之正則表達(dá)式小結(jié)

    最近在公司接手重構(gòu)一個(gè)項(xiàng)目,發(fā)現(xiàn)之前的開發(fā)在驗(yàn)證格式這塊寫的太亂了,到處都有相關(guān)的驗(yàn)證代碼,所以就有了這篇文章,供自己收藏也分享給有需要的朋友們參考借鑒,下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-12-12
  • IOS 陀螺儀開發(fā)(CoreMotion框架)實(shí)例詳解

    IOS 陀螺儀開發(fā)(CoreMotion框架)實(shí)例詳解

    這篇文章主要介紹了IOS 陀螺儀開發(fā)實(shí)例詳解的相關(guān)資料,介紹了螺旋儀參數(shù)意義及CoreMotion框架,需要的朋友可以參考下
    2016-10-10

最新評論