首页 > 代码库 > iphone开发-Local Notifications
iphone开发-Local Notifications
两种方式 Local notifications 和 push notifications(也成为Remote notifications)可以让当前没有工作的App,给用户提示信息。用户的设备上会出现一个Alert,用户可以点击进入该App。其中Push notifications适用于 iOS 3.0 及 Mac OS X v7.0, Local notifications 适用于 iOS 4。
比较简单的应用,如捕鱼达人。很长一段时间不玩的话,系统会弹出一个提示,提醒玩家好久没有玩了。这是一种营销方式。而且成本也不高。便是通过Local notifications来实现的。现在我们就主要分析一下 Local notifications。至于Remote notifications,用于有服务器端支持的App。
UIApplication扩展了一个UILocalNotifications类别(同样也有UIRemoteNotifications)
@interface UIApplication (UILocalNotifications)
它引入了一些方法如:
scheduleLocalNotification:
cancelLocalNotification:
用来注册或取消一个UILocalNotification
假设我们规定时间为3天,如果3天没有来玩,便弹出提示。那么我们首先应该在游戏退出时注册一个三天后触发的事件。同时要在游戏开始时,注销掉这个事件。测试发现applicationWillTerminate并不会调用,可能是ios4之后,用户按下home键,当前应用并不退出而是转向后台的缘故。因此我们将注册位置放在了applicationDidEnterBackground里。
NSDate *notifyTime = [NSDate dateWithTimeIntervalSinceNow:3*24*3600];//触发的时间
UILocalNotification *localNofify = [[UILocalNotification alloc] init];
if(localNofify==nil)
return;
localNofify.fireDate = notifyTime;
localNofify.timeZone = [NSTimeZone defaultTimeZone];
localNofify.alertBody = @"您很久沒有玩了......";
localNofify.soundName = UILocalNotificationDefaultSoundName;
localNofify.applicationIconBadgeNumber = 1;
[[UIApplication sharedApplication] scheduleLocalNotification:localNofify];//注册
[localNofify release];
需要说明的是iconBadgeNumber,它代表的是该应用的Icon上显示的数字数。
在游戏启动时要记得清零:
[[UIApplication sharedApplication] cancelAllLocalNotifications];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
更多信息查看官方网站:http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008194-CH1-SW1
iphone开发-Local Notifications