iOS开发---本地通知(UILocalNotification)

iOS开发---本地通知(UILocalNotification)

标签: ios本地通知

2016-07-12 10:28 1437人阅读 评论(0) 收藏 举报

 分类:

iOS(25) 

版权声明:本文为博主原创文章,转载请注明出处。

iOS中通知机制又叫消息机制,其包括两类:一类是本地通知;另一类是推送通知,也叫远程通知。 
本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟定时、待办事项提醒,又或者一个应用在一段时候后不使用通常会提示用户使用此应用等都是本地通知。创建一个本地通知通常分为以下几个步骤:

  • 创建UILocalNotification。
  • 设置处理通知的时间fireDate。
  • 配置通知的内容:通知主体、通知声音、图标数字等。
  • 配置通知传递的自定义数据参数userInfo(这一步可选)。
  • 调用通知,可以使用scheduleLocalNotification:按计划调度一个通知,也可以使用presentLocalNotificationNow立即调用通知。

简单实现一个本地通知应用,具体代码如下: 
AppDelegate中:

#import "AppDelegate.h"
#import "ViewController.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    _window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
    _window.backgroundColor = [UIColor colorWithRed:249/255.0 green:249/255.0 blue:249/255.0 alpha:1.0];

    //设置全局导航条风格和颜色
    [[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:23/255.0 green:180/255.0 blue:237/255.0 alpha:1]];
    [[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];

    ViewController *VC = [[ViewController alloc]init];
    _window.rootViewController = VC;

    [_window makeKeyAndVisible];

    //如果已经获得发送通知哦的授权则创建本地通知,否则请求授权(注意:如果不请求授权在设置中是没有对应的通知设置项的,也就是说如果从来没有发送过请求,即使通过设置也打不开消息允许设置)
    if ([[UIApplication sharedApplication]currentUserNotificationSettings].types != UIUserNotificationTypeNone) {
        [self addLocalNotification];
    }else{
        [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound   categories:nil]];
    }
    return YES;
}
#pragma mark - **************** 调用过用户注册通知方法后执行(也就是调用完registerUserNotificationSettings:方法后执行)
-(void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings{
    if (notificationSettings.types != UIUserNotificationTypeNone) {
        [self addLocalNotification];
    }
}
#pragma mark - **************** 进入前台后设置消息信息
- (void)applicationWillEnterForeground:(UIApplication *)application {
    [[UIApplication sharedApplication]setApplicationIconBadgeNumber:0];//进入前台取消应用消息图标
}
#pragma mark - **************** 私有方法
//添加本地通知
-(void)addLocalNotification{
    //定义本地通知对象
    UILocalNotification *notification = [[UILocalNotification alloc]init];
    //设置调用时间
    notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:10.0];//通知触发时间,10s之后
    notification.repeatInterval = 2; //通知重复次数

    //设置通知属性
    notification.alertBody = @"你要我怎样---薛之谦,点击查看-----";//通知主体
    notification.applicationIconBadgeNumber = 1;//应用程序右上角显示的未读消息数
    notification.alertAction = @"打开应用";//待机界面的滑动动作提示
    notification.alertLaunchImage = @"Default";//通过点击通知打开应用时的启动图片,这里使用程序启动图片
    //notification.soundName=UILocalNotificationDefaultSoundName;//收到通知时播放的声音,默认消息声音
    notification[email protected]"msg.caf";//通知声音(需要真机才能听到声音)

    //设置用户信息
    notification.userInfo = @{@"id":@1,@"user":@"XF"};

    //调用通知
    [[UIApplication sharedApplication] scheduleLocalNotification:notification];

}
#pragma mark - **************** 移除本地通知,在不需要此通知时记得移除
-(void)removeNotification{
    [[UIApplication sharedApplication] cancelAllLocalNotifications];
}

@end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74

注意: 
- 在使用通知之前必须注册通知类型,如果用户不允许应用程序发送通知,则以后就无法发送通知,除非用户手动到iOS设置中打开通知。 
- 本地通知是有操作系统统一调度的,只有在应用退出到后台或者关闭才能收到通知。 
通知的声音是由iOS系统播放的,格式必须是Linear PCM、MA4(IMA/ADPCM)、μLaw、aLaw中的一种,并且播放时间必须在30s内,否则将被系统声音替换,同时自定义声音文件必须放到main boundle中。 
- 本地通知的数量是有限制的,最近的本地通知最多只能有64个,超过这个数量将被系统忽略。 
- 如果想要移除本地通知可以调用UIApplication的cancelLocalNotification:或cancelAllLocalNotifications移除指定通知或所有通知。




0
时间: 2024-08-14 09:15:12

iOS开发---本地通知(UILocalNotification)的相关文章

iOS开发--本地通知与远程通知

iOS开发--本地通知与远程通知 作者 雷潮 关注 2016.02.01 00:18* 字数 1921 阅读 8898评论 1喜欢 41 这里是指推送通知跟NSNotification有区别: 1.NSNotification是系统内部发出通知,一般用于内部事件的监听,或者状态的改变等等,是不可见的2.本地通知与远程通知是可见的,主要用于告知用户或者发送一些App的内容更新,推送一些相关的消息,让用户知道App内部发生了什么事情. Paste_Image.png iOS常用通知 1.本地推送通知

iOS开发本地通知

/* 本地通知:不通过网络,在本地实现的通知,自己发给自己 远程通知:必须通过网络,使用推送技术(APNs),实现通知 本地通知: 1.要完成可以接收的通知形式的注册 2.具体通知的设置 3.发送通知 */ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization

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 // 设置通知的

iOS开发——本地通知

本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟定时.待办事项提醒,又或者一个应用在一段时候后不使用通常会提示用户使用此应用等都是本地通知.创建一个本地通知通常分为以下几个步骤: 创建UILocalNotification. 设置处理通知的时间fireDate. 配置通知的内容:通知主体.通知声音.图标数字等. 配置通知传递的自定义数据参数userInfo(这一步可选). 调用通知,可以使用scheduleLocalNotification:按计划调度一个通知,也可以使用pr

IOS 本地通知UILocalNotification

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

iOS 浅谈本地通知 UILocalNotification

1.创建本地通知 UILocalNotification *local = [[UILocalNotification alloc] init]; 2.设置通知显示的时间 local.fireDate = [NSDate date]; 3.设置默认时区 local.timeZone = [NSTimeZone defaultTimeZone]; 4.设置提示内容 local.alertBody = @JPG下载完成,请即时查看!; 5.这个通知到时间时,你的应用程序右上角显示的数字. local

iOS 注册本地通知(推送)

注:按Home键让App进入后台运行时,方可查看通知. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // 注册本地通知 UILocalNotification *localnotifit = [[U

iOS开发中通知(Notification)快速入门及推送通知实现教程

iOS开发中通知(Notification)快速入门及推送通知实现教程 标签: NSNotificationCenterNSNotification 2016-11-14 00:18 232人阅读 评论(0) 收藏 举报  分类: iOS(400)  转载自:http://www.111cn.NET/sj/ios8/90190.htm 通知(Notification)是开发框架中观察者模式的一种实现方式,内部的实现机制由Cocoa框架支持,通常用于试图控制器和数据模型的交互.通过通知,可以向一个

【iOS开发-119】ipa打包、单元测试test、本地通知UILocalNotification

(1)ipa打包,可以用Xcode,也可以用iTunes,用后者比较快. 具体教程:使用XCode和iTunes打包ipa i OS_ipa打包的方法 (2)单元测试(一般用于测试某一个方法是否可行等等) --轻量化 --和程序target是单独分开的 --比较直观快读地知道测试结果 相对而言,还有集群测试(一般测试一些模块和功能).压力测试(加大数据或者用户进行测试) (3)本地通知 #import "ViewController.h" @interface ViewControll