`
jsntghf
  • 浏览: 2490329 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

本地通知(二)

    博客分类:
  • iOS
阅读更多

以前写过一篇文章:本地通知,本文是基于此基础的一个简单的例子。

 

localnotificationAppDelegate.h

 

#import <UIKit/UIKit.h>

@class localnotificationViewController;

@interface localnotificationAppDelegate : NSObject <UIApplicationDelegate> {
	UIWindow *window;
	localnotificationViewController *viewController;
}

@property(nonatomic, retain) IBOutlet UIWindow *window;
@property(nonatomic, retain) IBOutlet localnotificationViewController *viewController;

@end

 

localnotificationAppDelegate.m

 

#import "localnotificationAppDelegate.h"
#import "localnotificationViewController.h"

@implementation localnotificationAppDelegate

@synthesize window;
@synthesize viewController;

#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
	application.applicationIconBadgeNumber = 0;
	[self.window addSubview:viewController.view];
	[self.window makeKeyAndVisible];
	
	return YES;
}

#pragma mark -
#pragma mark Memory management

- (void)dealloc {
	[viewController release];
	[window release];
	[super dealloc];
}

@end

 

 localnotificationViewController.h

 

#import <UIKit/UIKit.h>

@interface localnotificationViewController : UIViewController {
	IBOutlet UILabel *myLable1;
	IBOutlet UILabel *myLable2;
	IBOutlet UILabel *myLable3;
}

@property(nonatomic, retain) UILabel *myLable1;
@property(nonatomic, retain) UILabel *myLable2;
@property(nonatomic, retain) UILabel *myLable3;

- (IBAction)onChangeValue:(id)sender;

@end

 

 localnotificationViewController.m

 

#import "localnotificationViewController.h"

@implementation localnotificationViewController

@synthesize myLable1, myLable2, myLable3;

- (void)viewDidLoad {
	[super viewDidLoad];
	[[UIApplication sharedApplication] cancelAllLocalNotifications];
}

- (void)viewDidUnload {
	self.myLable1 = nil;
	self.myLable2 = nil;
	self.myLable3 = nil;
}

- (void)dealloc {
	[myLable1 release], myLable1 = nil;
	[myLable2 release], myLable2 = nil;
	[myLable3 release], myLable3 = nil;
	[super dealloc];
}

#pragma mark -
#pragma mark onChageValue

- (IBAction)onChangeValue:(id)sender {
	UISwitch *switchBtn = (UISwitch *)sender;
	if (switchBtn.on) {
		UILocalNotification *notification = [[UILocalNotification alloc] init]; 
		NSDate *now = [NSDate date];  
		notification.timeZone = [NSTimeZone defaultTimeZone]; 
		notification.repeatInterval = NSDayCalendarUnit;
		notification.applicationIconBadgeNumber = 1;
		notification.alertAction = NSLocalizedString(@"显示", nil);
		switch (switchBtn.tag) {
			case 0:
			{
				notification.fireDate = [now dateByAddingTimeInterval:5];
				notification.alertBody = self.myLable1.text; 
			}
				break;
			case 1:
			{
				notification.fireDate = [now dateByAddingTimeInterval:10];
				notification.alertBody = self.myLable2.text; 
			}
				break;
			case 2:
			{
				notification.fireDate = [now dateByAddingTimeInterval:15];
				notification.alertBody = self.myLable3.text; 
			}
				break;
			default:
				break;
		}
		[notification setSoundName:UILocalNotificationDefaultSoundName];
		NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:
												 [NSString stringWithFormat:@"%d", switchBtn.tag], @"key", nil];
		[notification setUserInfo:dic];
		[[UIApplication sharedApplication] scheduleLocalNotification:notification];
	} else {
		NSArray *array = [[UIApplication sharedApplication] scheduledLocalNotifications];
		for (int i = 0; i < [array count]; i++) {
			UILocalNotification	*myUILocalNotification = [array objectAtIndex:i];
			if ([[[myUILocalNotification userInfo] objectForKey:@"key"] intValue] == switchBtn.tag) {
				[[UIApplication sharedApplication] cancelLocalNotification:myUILocalNotification];
			}
		}
	}
}

@end

 

效果图:


 

分享到:
评论

相关推荐

    Delphi移动应用中IOS与Android本地通知案例(含源码)

    演示Delphi XE8及以上版本中使用TNotificationCenter控件完成在Android及IOS的本地通知功能(含源码,需自行编译测试),是《Delphi XE8 iOS与Android移动应用开发(APP开发)教程[完整中文版]》书中第二十章内容...

    轻松搞定iOS本地消息推送

    首先,我们先要明白一个概念,这里的本地通知是UILocalNotification类,和系统的NSNotificationCenter通知中心是完全不同的概念。 一、我们可以通过本地通知做什么 通知,实际上是由IOS系统管理的一个功能,比如某些...

    基本情况 在一个项目开发过程中,遇到了小票自动打印的业务需求,原本计划使用NodeJS构建打印服务,调用本地电脑打印机进行数据打

    基本情况 在一个项目开发过程中,遇到了小票自动打印的业务需求,原本计划使用NodeJS构建打印服务,调用本地电脑打印机进行数据打印,最后可参考资料偏少,由于项目紧急且对NodeJS的熟悉程度目前也还不够,所以转而...

    气象自动站网络状态监控电话自动通知报警系统

    情况,实现本地报警与远程报警的功能。当网络出现故障 时能得到及时的处理,使气象自动观测站数据的及时传输 得到保障。 二、系统功能 1、监控七要素气象自动站数据接收服务器运行状态。 当自动站数据接收...

    win 7 解除远程桌面多用户同时连接(会话)数限制

    如果有第二个用户通过远程桌面服务登录本机,那么在此之前本地已登录的用户、或远程已登录的用户将被踢出。 本补丁的功能就是去除这个限制,允许多人多用户同时并行访问登录XP/Vista,拥有一个终端服务器的功能。

    最新码支付 本地CK版微信免框架 店员挂机 支持微信个码识别 支付宝免挂协议长期不掉 +搭建教程

    装备微信通知 有人登录 后台 或者用户中心 以及输入二级密码都会在微信通知 配置简单 支付宝 ck 可坚持一个月(亲测截图为证) 微信支出商业版 个码辨认 免框架店员 搭建环境: linux+PHP7.2+MySQL5.6(需求装 sg11 ...

    iOS判断用户是否打开APP通知开关

    iOS中通知机制又叫消息机制,其包括两类:一类是本地通知;另一类是推送通知,也叫远程通知。两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒两种形式告诉用户,并且点击通知可以会打开应用程序,但是实现原理...

    gost:构建安全跟踪器的本地副本。 通过电子邮件通知Slack如果有更新

    gost是用Go编写的,因此,您只需获取二进制发行版并将其放入$ PATH中即可。 gost构建了Security Tracker的本地副本( 或或 )。 系统管理员始终监视Security Tracker 。 这可能是一个负担。 例如,找到漏洞后,...

    简单实现Android本地音乐播放器

    音乐播放需要调用service,在此,只是简单梳理播放流程。 public class PlayMusicService extends Service { //绑定服务 调用服务的方法。 @Override public IBinder onBind(Intent intent) { ...

    五车电子书数据库试用通知.pdf

    五车电子书数据库试用通知.pdf知识点总结 一、五车电子书数据库试用通知概述 五车电子书数据库试用通知是五车信息技术(北京)有限公司为我院师生免费提供的五车“E-BOOK数字图书馆”试用服务。该服务允许用户自由...

    详解iOS本地推送与远程推送

    一、简介 分为本地推送和远程推送2种。可以在应用没有打开甚至手机锁屏情况下给用户以提示。...二、本地推送 1 注册与处理 代码如下: /// 一般在在启动时注册通知,程序被杀死,点击通知后调用此程序 -

    drone-email:无人机插件,用于发送电子邮件通知

    无人机插件可通过电子邮件发送构建状态通知。 有关用法信息和可用选项的列表,请查看 。 二进位 使用以下命令生成二进制文件: go build 码头工人 使用以下命令构建docker映像: docker build -t drillster/...

    Penix模拟操作系统向导.pdf

    三、既支持从本地磁盘复制内容到虚拟的磁盘驱动器中,也支持从虚拟的磁盘驱动器复制内容到本地磁盘,即导入、导出。 四、用多线程的方式进行设计:一言以蔽之,即用一个线程跟用户进行交互,接受请求,并将请求转换...

    Android开发权威指南 第二版

    《Android开发权威指南(第二版)》全面介绍了Android应用开发的各种技术,主要内容包括Android的四大应用程序组件(Activity、Service、Content Provider和Broadcast Receiver)、布局、菜单、控件、资源和本地化、可视...

    local-offline-collab:本地线下协作特别兴趣小组

    本地离线协作(Locol)特殊兴趣小组 ... 这些会议通常在每月的第二个星期三举行,但时间可能会有所不同。 在此仓库中订阅,以通知即将举行的会议,或查看。 您还可以查看我们的历史会议记录或 通话记录

    spring.net中文手册在线版

    第二十二章. Web服务 22.1.服务端 22.1.1.消除对.asmx文件的依赖 22.1.2.向web服务中注入依赖项 22.1.3.将PONO发布为web服务 22.1.4.将AOP代理发布为web服务 22.1.5.客户端的问题 22.2.客户端 22.2.1....

    nschecker:DNS记录更改检测工具,带有松弛通知

    MX记录引用本地DNS缓存服务器(完整解析器)。用法下载exe二进制文件从此处下载linux / macOS二进制文件。 直接下载最新Linux二进制文件。 wget ...

    azure-notificationhubs-ios:适用于Apple的Azure通知中心SDK

    Microsoft Azure通知中心提供了一个多平台,可扩展的推送基础结构,使您能够将移动推送通知从任何后端(在云中或本地)发送到任何移动平台。 要了解更多信息,请访问我们的。 适用于Apple的Azure Notification ...

    increase-memory-limit:增加本地节点二进制文件的内存限制(“ max-old-space-size”)

    停产通知自2017年8月发布的Node.js v8.0起,您现在可以使用NODE_OPTIONS环境变量来全局设置max_old_space_size。 ( ) export NODE_OPTIONS=--max_old_space_size=4096增加内存限制解决方法,可在运行节点二进制...

Global site tag (gtag.js) - Google Analytics