iOS_35本地通知

应用程序代理

//
//  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,

因为此方法调用的前提是:

应用正在运行,或仍在后台运行时,收到了通知

时间: 2024-10-13 22:26:40

iOS_35本地通知的相关文章

IOS 本地通知

在苹果的Mac OSX 和IOS开发的API中有三个不同的"通知",包括:广播通知,本地通知和推送通知. 本地通知只是应用所在设备上给用户通知,而推送通知是远程通知,他是由远程服务器推送过来的 本节主要是讲的本地通知,虽然本地通知并没有任何的网络通信,但是他在编程方面与后面要介绍的推送通知非常相似.我们的例子中有三个按钮,"计划通知开始"按钮开启计划通知,他在10秒钟后到达."停止所有计划通知"按钮式停止和取消已经开始的计划通知."立刻

iOS 消息推送及本地通知,原理解析

在此整理了一些前辈的思路,根据自己对问题的理解及相似方面的比较做了这篇笔记,本文并未详细讲解,只是根据自己提出问题进行一个解决,希望能对大家有些帮助. 1. deviceToken与UUID,UDID的区别 deviceToken : A token that identifies the device to APS. The token is an opaque data type because that is the form that the provider needs to subm

本地通知和推送通知

关于本地通知: 在使用通知之前必须注册通知类型,如果用户不允许应用程序发送通知,则以后就无法发送通知,除非用户手动到iOS设置中打开通知. 本地通知是有操作系统统一调度的,只有在应用退出到后台或者关闭才能收到通知.(注意:这一点对于后面的推送通知也是完全适用的. ) 通知的声音是由iOS系统播放的,格式必须是Linear PCM.MA4(IMA/ADPCM).µLaw.aLaw中的一种,并且播放时间必须在30s内,否则将被系统声音替换,同时自定义声音文件必须放到main boundle中. 本地

本地通知 LocalNotification

本地通知 LocalNotification  在Appdelegate中实现以下两个方法 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. //设置桌面红点内的数字 // application.app

IOS开发-本地通知

1 // 注册 发送通知的方法 2 -(void)pushNotfation{ 3 4 5 //--------------初始化本地通知 alloc init 虽然是UI控件 但继承NSObject 6 UILocalNotification *not = [[UILocalNotification alloc]init]; 7 // 设置本地通知启动的时间 8 not.fireDate = [NSDate dateWithTimeIntervalSinceNow:5]; 9 // 设置通知的

UILocalNotification本地通知

// 执行通知一定要退出应用或挂起应用(进入后台)才能收到通知. 1.在iOS8及其以后版本中使用本地消息需要先获得用户的许可,否则无法成功注册本地消息.因此,我们将询问用户许可的代码片段添加到了app启动后的入口方法中(AppDelegate中的didFinishLaunchingWithOptions) func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSOb

Ios开发中UILocalNotification实现本地通知实现提醒功能

这两天在做一个日程提醒功能,用到了本地通知的功能,记录相关知识如下: 1.本地通知的定义和使用: 本地通知是UILocalNotification的实例,主要有三类属性: scheduled time,时间周期,用来指定iOS系统发送通知的日期和时间: notification type,通知类型,包括警告信息.动作按钮的标题.应用图标上的badge(数字标记)和播放的声音: 自定义数据,本地通知可以包含一个dictionary类型的本地数据. 对本地通知的数量限制,iOS最多允许最近本地通知数

本地通知的实现

- (IBAction)openLocal:(id)sender {         UILocalNotification *ln = [[UILocalNotification alloc] init];     ln.alertAction = @"赶集赶紧";     ln.alertBody = @"我是本地通知";     ln.fireDate = [NSDate dateWithTimeIntervalSinceNow:5];     ln.time

IOS 本地通知UILocalNotification

//发送通知    UILocalNotification *notification=[[UILocalNotification alloc] init];       if (notification!=nil) {         NSDate *now=[NSDate new];         notification.fireDate=[now dateByAddingTimeInterval:10];//10秒后通知        notification.repeatInterv