應用程序代理
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHByZSBjbGFzcz0="brush:java;">//
// BeyondAppDelegate.m
// 35_本地通知
//
// Created by beyond on 14-9-12.
// Copyright (c) 2014年 com.beyond. All rights reserved.
//
#import "BeyondAppDelegate.h"
@implementation BeyondAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UITextView *text = [[UITextView alloc]init];
text.frame = CGRectMake(40, 0, 240, 300);
text.backgroundColor = [UIColor redColor];
text.text = [NSString stringWithFormat:@"didLaunchWithOption\n%@", launchOptions];
[self.window.rootViewController.view addSubview:text];
// 1、如果點擊圖標進入應用程序,則launchOptions字典為nil
// 2.1、如果點擊本地通知進行應用程序,則launchOptions字典有值,值為:
/*
......
*/
// 2.2、如果是其他應用程序跳轉到本應用 從而打開本應用,則launchOptions字典有值,其值為:
NSLog(@"didLaunchWithOption");
return YES;
}
/**
下面方法didReceiveLocalNotification,被調用的前提是:
1、應用沒有關閉,仍在後台運行,或者正在顯示中
2、用戶點擊通知, 進入了程序(程序還在運行中, 程序並沒有被關掉)
3、如果應用正在顯示,接收到通知時,依然會調用app代理的此方法
*/
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
UILabel *label = [[UILabel alloc] init];
label.numberOfLines = 0;
label.frame = CGRectMake(0, 300, 320, 30);
label.backgroundColor = [UIColor blueColor];
label.text = @"didReceiveLocalNotification";
[self.window.rootViewController.view addSubview:label];
NSLog(@"didReceiveLocalNotification");
}
@end
控制器
// // BeyondViewController.m // 35_本地通知 // // Created by beyond on 14-9-12. // Copyright (c) 2014年 com.beyond. All rights reserved. // #import "BeyondViewController.h" @interface BeyondViewController () // 添加一個本地通知 - (IBAction)addLocalNotice; // 取消本地通知 - (IBAction)cancelLocalNotice; @end @implementation BeyondViewController // 添加一個本地通知 - (IBAction)addLocalNotice { // 1.創建通知 UILocalNotification *localNote = [[UILocalNotification alloc] init]; // 2.設置本地通知的屬性 localNote.alertAction = @"操作標題"; // 操作標題 localNote.alertBody = @"倫家想你啦~~~"; // 正文 localNote.applicationIconBadgeNumber = 5; // 本地通知的重復時間的間隔:每分鐘,每天,每小時... // localNote.repeatInterval = NSCalendarUnitMinute; // 點擊【本地通知】後, 打開程序時,將會展示的啟動圖片 localNote.alertLaunchImage = @"Default.png"; // 【本地通知】幾時啟動 localNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:5]; // 3.給app 注冊一個【本地通知】(添加),必須先移除舊的,防止重復添加 UIApplication *app = [UIApplication sharedApplication]; [app cancelAllLocalNotifications]; [app scheduleLocalNotification:localNote]; } // 取消本地通知 - (IBAction)cancelLocalNotice { UIApplication *app = [UIApplication sharedApplication]; [app cancelAllLocalNotifications]; } @end
只會調用didFinishLaunchingWithOptions方法,並傳參數 :launchOptions
不會調用didReceiveLocalNotification,
因為此方法調用的前提是:
應用正在運行,或仍在後台運行時,收到了通知
【本地通知】的重復時間的間隔: localNote.repeatInterval