亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 65114 | 回復(fù): 3
打印 上一主題 下一主題

[iOS] ios如何實(shí)現(xiàn)本地推送,兼容ios8 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-06-01 10:36 |只看該作者 |倒序?yàn)g覽
如果要兼容IOS8在IOS中實(shí)現(xiàn)本地推送,關(guān)鍵是要注意:ios8在實(shí)現(xiàn)本地推送時(shí)需要通過(guò)如下語(yǔ)句進(jìn)行注冊(cè)。
  1. [[UIApplication sharedApplication] registerUserNotificationSettings:mySettings];
復(fù)制代碼
至于IOS8之前版本的做法就不多說(shuō)了,直接上代碼。新建oc類文件(NotificationHelper),在NotificationHelper.h中聲明相關(guān)方法如下:
  1. #import <UIKit/UIKit.h>

  2. @interface NotificationHelper:NSObject <UIApplicationDelegate>
  3. {
  4. }
  5. -(void) addNotifiction:(NSString*) firedate keyA:(NSString*)key messageA:(NSString*)message
  6. -(void)removeLocalNotificationByKey:(NSString*)key;
  7. -(void)removeLocalAllNotification;
  8. -(void) registerLocalNotification:(UIApplication*)application;
  9. +(NotificationHelper*) shareInstance;
  10. @end
復(fù)制代碼
在NotificationHelper.m文件中實(shí)現(xiàn)方法如下:
  1. #import "NotificationHelper.h"

  2. @implementation NotificationHelper
  3. static NotificationHelper* instance;
  4. //實(shí)現(xiàn)單例
  5. +(NotificationHelper*) shareInstance
  6. {
  7.     static dispatch_once_t onceToken ;
  8.     dispatch_once(&onceToken, ^{
  9.         instance = [[super allocWithZone:NULL] init] ;
  10.     });
  11.     return instance ;
  12. }
  13. //推送處理[注冊(cè)消息通知]
  14. -(void) registerLocalNotification:(UIApplication*)application
  15. {
  16.     application.applicationIconBadgeNumber = 0;//清除應(yīng)用圖標(biāo)上的數(shù)字
  17. //關(guān)鍵:加上版本的控制
  18. #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_8_0
  19.     // The following line must only run under iOS 8. This runtime check prevents
  20.     // it from running if it doesn't exist (such as running under iOS 7 or earlier).
  21.     UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
  22.     UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
  23.     if ([application respondsToSelector:@selector(registerUserNotificationSettings:)])
  24.     {
  25.         [[UIApplication sharedApplication] registerUserNotificationSettings:mySettings];
  26.     }
  27. #endif
  28. }
  29. -(void) addNotifiction:(NSString*) firedate keyA:(NSString*)key messageA:(NSString*)message
  30. {
  31.     NSLog(@"addNotifiction");
  32.     UILocalNotification *localNotification = [[UILocalNotification alloc] init];
  33.     NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
  34.     [formatter setDateFormat:@"HH:mm:ss"];
  35.     NSDate *now = [formatter dateFromString:firedate];//觸發(fā)通知的時(shí)間
  36.   //如果firedate傳入的是XX:XX:XX格式在表示在固定的時(shí)間點(diǎn)發(fā)送通知,如果傳入的是XX格式表示從現(xiàn)在開(kāi)始XX秒后發(fā)送通知
  37.     if(now == nil)
  38.     {
  39.         NSTimeInterval secs = [firedate doubleValue];
  40.         now = [NSDate dateWithTimeIntervalSinceNow:secs];
  41.     }
  42.     localNotification.fireDate = now;
  43.     //設(shè)置 時(shí)區(qū)
  44.     localNotification.timeZone = [NSTimeZone defaultTimeZone];
  45.     // 觸發(fā)后,彈出警告框中顯示的內(nèi)容
  46.     localNotification.alertBody = message;
  47.     localNotification.alertAction = NSLocalizedString(@"View Details", nil);
  48.     // 觸發(fā)時(shí)的聲音(這里選擇的系統(tǒng)默認(rèn)聲音)
  49.     localNotification.soundName = UILocalNotificationDefaultSoundName;
  50.     // 觸發(fā)頻率(repeatInterval是一個(gè)枚舉值,可以選擇每分、每小時(shí)、每天、每年等)
  51.     localNotification.repeatInterval = kCFCalendarUnitDay;//測(cè)試用暫時(shí)寫死為每隔一天 0:不重復(fù)
  52.     // 需要在App icon上顯示的未讀通知數(shù)(設(shè)置為1時(shí),多個(gè)通知未讀,系統(tǒng)會(huì)自動(dòng)加1,如果不需要顯示未讀數(shù),這里可以設(shè)置0)
  53.     localNotification.applicationIconBadgeNumber = 1;
  54.     // 設(shè)置通知的id,可用于通知移除,也可以傳遞其他值,當(dāng)通知觸發(fā)時(shí)可以獲取
  55.     localNotification.userInfo = @{@"id" : key};
  56.     // 注冊(cè)本地通知
  57.     [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
  58.     [localNotification release];
  59. }
  60. /**
  61. removeLocalNotificationByKey
  62. */
  63. - (void)removeLocalNotificationByKey:(NSString*)key {
  64.     // 取出全部本地通知
  65.     NSArray *notifications = [UIApplication sharedApplication].scheduledLocalNotifications;
  66.     // 設(shè)置要移除的通知id
  67.     NSString *notificationId = key;
  68.     // 遍歷進(jìn)行移除
  69.     for (UILocalNotification *localNotification in notifications) {
  70.         // 將每個(gè)通知的id取出來(lái)進(jìn)行對(duì)比
  71.         if ([[localNotification.userInfo objectForKey:@"id"] isEqualToString:notificationId]) {
  72.             // 移除某一個(gè)通知
  73.             [[UIApplication sharedApplication] cancelLocalNotification:localNotification];
  74.         }
  75.     }
  76. }

  77. - (void)removeLocalAllNotification {
  78.     [[UIApplication sharedApplication] cancelAllLocalNotifications];
  79. }
  80. @end
復(fù)制代碼
用法舉例:

比如在應(yīng)用啟動(dòng)的時(shí)候調(diào)在didFinishLaunchingWithOptions方法中調(diào)用:

[[NotificationHelper shareInstance] registerLocalNotification:application];

進(jìn)行注冊(cè)和版本控制,在需要發(fā)送通知的時(shí)候調(diào)用:

[[NotificationHelper shareInstance] addNotifiction:"18:30:30" keyA:"key" messageA:"可以領(lǐng)取體力了!" ]

完畢。由于公司的手游項(xiàng)目需要使用到本地推送,而我們的項(xiàng)目是用quick cocos2d-x引擎,前端使用LUA編寫腳本和界面。這樣就面臨一個(gè)問(wèn)題:如何編寫友好的接口讓lua能夠調(diào)用oc來(lái)實(shí)現(xiàn)推送,這樣的話所有的邏輯都在lua中實(shí)現(xiàn)。

下次有空再說(shuō)。

論壇徽章:
1
操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-06-13 22:20:00
2 [報(bào)告]
發(fā)表于 2015-06-12 18:26 |只看該作者
哈哈哈 ,不錯(cuò)。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2019-05-13 10:59 |只看該作者
現(xiàn)在有很多第三方sdk都做推送,我這邊有使用過(guò)mobpush這個(gè)第三方的,他們這邊的sdk使用起來(lái)還是不錯(cuò)的,集成起來(lái)步驟比較少,服務(wù)也挺不錯(cuò),值得推薦下,有興趣可以去了解下
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP