Just a Computer Graphics Studio & My Life

以為指定時間本地通知 (Local Notification in Particular Time)實作有難度,不過實際瞭解之後,哇哈~原來那麼簡單!

Local Notification in Particular Time

時間到,從上方出現我所設定的訊息!

此程式只能在APP進入背景執行關閉APP時,才會出現本地通知喔~

在AppDelegate.m實作以下方法:


/**
Theme: Local Notification in Particular Time
IDE: Xcode 5
Language: Objective C
Date: 102/12/18
Author: HappyMan
Blog: https://cg2010studio.wordpress.com/
*/
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    NSDate *alertTime = [[NSDate date]
                         dateByAddingTimeInterval:7];
    NSDate *alertTime2 = [[NSDate date]
                          dateByAddingTimeInterval:17];

    NSCalendar *cal = [NSCalendar currentCalendar];
    NSDateComponents *comps = [[NSDateComponents alloc] init];
    [comps setDay:25];
    [comps setMonth:12];
    [comps setYear:2013];
    [comps setHour:13];
    [comps setMinute:14];

    NSDate *alertTime3 = [cal dateFromComponents:comps];
    NSLog(@"now time: %@", [NSDate date]);
    NSLog(@"alertTime: %@", alertTime);
    NSLog(@"alertTime2: %@", alertTime2);
    NSLog(@"alertTime3: %@", alertTime3);

    [self addNewSchedult:alertTime];
    [self addNewSchedult:alertTime2];
    [self addNewSchedult:alertTime3];
}

- (void)addNewSchedult:(NSDate *)date {
    UIApplication* app = [UIApplication sharedApplication];
    UILocalNotification* notifyAlarm = [[UILocalNotification alloc] init];
    if (notifyAlarm) {
        notifyAlarm.fireDate = date;
        notifyAlarm.timeZone = [NSTimeZone defaultTimeZone];
        notifyAlarm.repeatInterval = 0;
        notifyAlarm.soundName = @"";
        notifyAlarm.alertBody = [NSString stringWithFormat: @"Be happy ^_^\n%@", date];
        [app scheduleLocalNotification:notifyAlarm];
    }
}

執行結果就如頁首那張圖,此外它還會發出聲響呢!

now time: 2013-12-18 15:56:35 +0000

alertTime: 2013-12-18 15:56:42 +0000

alertTime2: 2013-12-18 15:56:52 +0000

alertTime3: 2013-12-25 05:14:00 +0000

總共設定三次通知,前兩次於7秒和17秒出現,第三次設定在今年浪漫的聖誕節,在一三一四這一刻出現~>//<~

接著來試驗遠端通知,來給使用者驚喜!

Local Notification in Particular Time2

鎖起來的時候也會推播通知

註:如果程式設定每隔一分鐘/一天區域推播一次,而沒有設定推播何時失效,那麼往後只能刪除整個APP才能停止不斷推播喔!因為我設定過隔一分鐘就區域推播一次,APP進入背景APP從背景刪除都無法停止推播,只好刪了整個APP:P我弟才停止抱怨⋯⋯

參考:[iOS Dev] UILocalNotification in particular time – 指定時間本地通知

Advertisements

Comments on: "[iOS] 指定時間本地通知 (Local Notification in Particular Time)" (1)

  1. […] 區域通知的做法已經在指定時間本地通知 (Local Notification in Particular Time),它的行為其實有兩種,一種是當APP為背景執行時出現訊息,另一種則是APP在前景執行時跳出提示。 […]

    喜歡

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: