Notification is a very common mechanism of transmitting information in the application programming of smart phone, and it can save resources very well, without consuming resources to check information status (Pooling), the application in iOS is divided into two different kinds of notification, local and remote. The local notification is managed centrally by iOS under Notificationmanager, simply by adding the encapsulated local notification object to the system notification management mechanism queue. The system will fire the local notification at the specified time, and the application will complete the notification process simply by designing a method to handle notification.
The objects that are used by local notification are uilocalnotification,uilocalnotification properties that cover all the content that is required to process notification. The attributes of Uilocalnotification are Firedate, TimeZone, Repeatinterval, Repeatcalendar, Alertbody, Alertaction, HasAction, Alertlaunchimage, Applicationiconbadgenumber, Soundname and UserInfo.
Dispatch of Uilocalnotification
Where Firedate, TimeZone, Repeatinterval, and Repeatcalendar are scheduled for uilocalnotification. Firedate is the exact time of uilocalnotification excitation. TimeZone is whether the uilocalnotification excitation time is changed according to the time zone change, if set to nil, then the uilocalnotification will be excited after a period of time, not an exact moment is excited. Repeatinterval is the time difference between uilocalnotification being repeated excitation, but the time difference is completely based on the calendar unit (nscalendarunit), such as the units that are fired weekly, Nsweekcalendarunit, If not set, the excitation will not be repeated. Repeatcalendar is the calendar that the calendar units used by the uilocalnotification repeat firing need to refer to, and if not set, the system default calendar will be used as the reference calendar.
Uilocalnotification's reminder content
Alertbody, Alertaction, Hasaction, and Alertlaunchimage are when the application is not running, the system processes
1. Add a local push
Set after 20 seconds
NSDate *date = [NSDate datewithtimeintervalsincenow:20];
/*
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[Formatter setdateformat:@ "HH:mm:ss"];
NSDate *now = [Formatter datefromstring:@ "15:00:00"];//time to trigger notification
*/
Chuagjian
A local push
Uilocalnotification *noti = [[[[Uilocalnotification alloc] init] autorelease];
if (Noti) {
Set push time
Noti.firedate = Date;//=now
Setting the time zone
Noti.timezone = [Nstimezone defaulttimezone];
Set the recurrence interval
Noti.repeatinterval = Nsweekcalendarunit;
Push Sound
Noti.soundname = Uilocalnotificationdefaultsoundname;
Content
Noti.alertbody = @ "Push content";
The number of the red circle displayed on the icon
Noti.applicationiconbadgenumber = 1;
Setup UserInfo is convenient to use when you need to undo later
Nsdictionary *infodic = [nsdictionary dictionarywithobject:@ "name" forkey:@ "Key"];
Noti.userinfo = Infodic;
Add push to UIApplication
UIApplication *app = [UIApplication sharedapplication];
[App Schedulelocalnotification:noti];
}
2. A local push message is received while the program is running
-(void) Application: (UIApplication *) application didreceivelocalnotification: (uilocalnotification*) notification
{
Uialertview *alert = [[Uialertview alloc] initwithtitle:@ "receive local alerts in app"
Message:notification.alertBody
Delegate:nil
cancelbuttontitle:@ "OK"
Otherbuttontitles:nil];
[Alert show];
Here, you can go through notification's useinfo and do what you want to do.
Application.applicationiconbadgenumber-= 1;
}
3. Cancel a local push
UIApplication *app = [UIApplication sharedapplication];
Get local push array
Nsarray *localarr = [app scheduledlocalnotifications];
Declaring a local notification object
Uilocalnotification *localnoti;
if (Localarr) {
For (Uilocalnotification *noti in Localarr) {
Nsdictionary *dict = Noti.userinfo;
if (dict) {
NSString *inkey = [dict objectforkey:@ "key"];
if ([Inkey Isequaltostring:key]) {
if (Localnoti) {
[Localnoti release];
Localnoti = nil;
}
Localnoti = [Noti retain];
Break
}
}
}
Determine if a push is found for the same key that already exists
if (!localnoti) {
Initialization not present
Localnoti = [[Uilocalnotification alloc] init];
}
if (Localnoti &&!state) {
Do not push cancel push
[App Cancellocalnotification:localnoti];
[Localnoti release];
Return
}
}
4. Two ways to unregister a local notification, one is to cancel the specified notification, and the second is to cancel all registration notices:
[[UIApplication sharedapplication] cancellocalnotification:localnotification];
[[UIApplication sharedapplication] cancelalllocalnotification];
5.IOS5 Four types of notifications
5.1. Banner (Banner)
Banner notifications are new features that appear in IOS5, which are displayed at the top of the screen and disappear after a few seconds. A banner notification will show the program's small icon (under the low split screen display 29x29 icon, high split screen display 58x58 icon), the name of the program and the contents of the notification. Small icons help users to see clearly which application is reminding them at a glance.
5.2. Alert (Alert)
Reminder notifications do not automatically disappear and require users to interact with them to close. Designers need to design the details of the notification, and sometimes the action button design title. The background style of the entire alert notification, including the style of the buttons inside, is immutable, so designers and developers don't have to be creative here. Android because of its openness, we can use their own design of the control, and iOS do this may be to maintain UI style consistency.
5.3. Mark (Badge)
A tag notification is a red oval marker that appears in the upper-right corner of the program icon, showing the number of notifications that need to be processed by the user. Similarly, the color and shape and size of the marker cannot be changed. The number of applications that are updated in the App store, and the number of unread messages received in mail is notified to the user with a tag.
5.4. Voice (sound)
Voice prompts are also a way of notifying iOS, which supports customization and can be used in conjunction with the previous three notification types.
6. Local notifications and push notifications
The iOS app alerts users by using local or push notifications:
6.1. Local Notifications
The local notification of the application is generated and published by the user's iOS device, regardless of whether the application is running in the foreground. Just like a calendar app, or a to-do list app, you can send a local notification to remind users that a meeting is about to begin.
6.2. Push Notifications
The application's push notification is published in this way: The app's remote server (Provider) sends a notification to Apple's push notification service (Apple push Notification service, APNS). Apple's notification server then pushes this notification to all iOS devices that have the app installed.
If you want to use push notifications, you must first register the type of notifications you want to use in Apple's push notification service, such as the following code, which indicates that both the tag and the sound types of notifications are registered:
-(void) applicationdidfinishlaunching: (UIApplication *) app {//other setup tasks here ....
[[UIApplication Sharedapplication] Registerforremotenotificationtypes: (uiremotenotificationtypebadge| Uiremotenotificationtypesound)];}
How to use various notifications
Applications that use local notifications can use banners, reminders, tags, sounds, but applications that use push notifications need to first register the type of notification to use.
There are a few things to keep in mind when using notifications:
1. Guarantee that the content of the tag is up to date
2. Do not issue multiple notifications for the same event
3. Notification content does not include the name of the application
For tagged notifications, the tag disappears automatically when all the items are resolved.
In banners and reminders, and at the top of the notification hub, the iOS system automatically displays the name of the app in the message, so you don't need to include the name of the app when you design the content of the notification.
When designing the content of a notification, it is also important to note:
1. Focus on the expression of information, not the user's actions. Avoid prompting users to click on which button or how to open the app
2. Short, preferably no more than two lines. Long information is difficult to read quickly, and there must be scroll bars
3. Use sentence capitalization (Sentence-style capitalization, first letter capitalization) and appropriate punctuation, ending with a period
About "Reminders"
A reminder may contain one to two buttons. For reminders with two buttons, you need to leave the button on the left side of the alert, and put the action button on the right.
The button to the left of the point closes the reminder, and the button on the right side closes the reminder and opens the app.
If there is only one button, this button should be a OK button.
Clicking on this OK button will also turn off the reminder without opening the app.
For reminder notifications, be careful when designing the title of the action button:
1. Title can accurately describe the action of opening an app. For example, clicking on the play button will open the game and the user will be able to play immediately.
2. Use header capitalization (Title-style capitalization, capitalize each word's first letter)
3. Short Enough
When you receive a new alert notification when you lock the screen, the title of the action button is displayed in the message "slide to view", replacing the word "view" and converting all letters to lowercase.
About "sound"
For sound cues, the user's voice can attract attention when they are not using the phone, which prevents the user from missing important information.
We can use the system's built-in sound, or we can customize the sound. If you use a custom sound, you should make sure it is short enough and is carefully crafted.
about the notification bar
As long as it is not a lock screen, you can open the notification center from the top of the screen.
If it is in the game, such as Fruit Ninja this game, in order to avoid the finger accidentally slide to the outside of the screen and open the Notification Center, iOS5 to improve the difficulty of opening Notification Center: first from the top of the screen to pull the existing similar anti-skid-like drop bar, the drop-down bar and then drag again to open the Notification center, Otherwise the drop-down bar will be automatically closed after a few seconds. The design with anti-slip drop bars Here helps new users quickly create a mental model of the drop-down to open notification hubs.
OS5 the notifications in the drop-down notification bar, the same app notifications are grouped together according to the time sequence. Deleting an app's notification message requires the "X" button on the right, the "X" button to "clear" and the user clicking Clear again to remove all notifications from the app. The two-step operation reduces the chance of false deletion, and its interactive form is much more friendly than the common modal window that pops up two times.