local notification

地通知,local notification,用於基於時間行爲的通知,比如有關日曆或者todo列表的小應用。另外,應用如果在後臺執行,iOS允許它在受限的時間內運行,它也會發現本地通知有用。比如,一個應用,在後臺運行,嚮應用的服務器端獲取消息,當消息到達時,比如下載更新版本的提示消息,通過本地通知機制通知用戶。

本地通知是UILocalNotification的實例,主要有三類屬性:

  • scheduled time,時間週期,用來指定iOS系統發送通知的日期和時間;
  • notification type,通知類型,包括警告信息、動作按鈕的標題、應用圖標上的badge(數字標記)和播放的聲音;
  • 自定義數據,本地通知可以包含一個dictionary類型的本地數據。

對本地通知的數量限制,iOS最多允許最近本地通知數量是64個,超過限制的本地通知將被iOS忽略。



 UILocalNotification *notification=[[UILocalNotification alloc] init];
        if (notification!=nil) {
                NSDate *now = [NSDate date];
                    //從現在開始,10秒以後通知
                notification.fireDate=[now dateByAddingTimeInterval:4];
                     //使用本地時區
            notification.timeZone=[NSTimeZone defaultTimeZone];
                notification.alertBody=@"頂部提示內容,通知時間到啦";
                     //通知提示音 使用默認的
                     notification.soundName= UILocalNotificationDefaultSoundName;
                     notification.alertAction=NSLocalizedString(@"你鎖屏啦,通知時間到啦", nil);
                     //這個通知到時間時,你的應用程序右上角顯示的數字。
                     notification.applicationIconBadgeNumber = 1;
                     //add key  給這個通知增加key 便於半路取消。nfkey這個key是我自己隨便起的。
                     // 假如你的通知不會在還沒到時間的時候手動取消 那下面的兩行代碼你可以不用寫了。
            NSDictionary *dict =[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:notification],@"nfkey",nil];
                     [notification setUserInfo:dict];
                     //啓動這個通知
                [[UIApplication sharedApplication]  scheduleLocalNotification:notification];
                     //這句真的特別特別重要。如果不加這一句,通知到時間了,發現頂部通知欄提示的地方有了,然後你通過通知欄進去,然後你發現通知欄裏邊還有這個提示
                     //除非你手動清除,這當然不是我們希望的。加上這一句就好了。網上很多代碼都沒有,就比較鬱悶了。
                }
    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章