uilocalios notificationn的repeatcalendar这个属性吗

概述在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情。iOS中通知机制又叫消息机制,其包括两类:一类是本地通知;另一类是推送通知,也叫远程通知。两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒两种形式告诉用户,并且点击通知可以会打开应用程序,但是实现原理却完全不同。今天就和大家一块去看一下如何在iOS中实现这两种机制,并且在文章后面会补充通知中心的内容避免初学者对两种概念的混淆。&&&本地通知本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟定时、待办事项提醒,又或者一个应用在一段时候后不使用通常会提示用户使用此应用等都是本地通知。创建一个本地通知通常分为以下几个步骤:&创建UILocalNotification。设置处理通知的时间fireDate。配置通知的内容:通知主体、通知声音、图标数字等。配置通知传递的自定义数据参数userInfo(这一步可选)。调用通知,可以使用scheduleLocalNotification:按计划调度一个通知,也可以使用presentLocalNotificationNow立即调用通知。下面就以一个程序更新后用户长期没有使用的提醒为例对本地通知做一个简单的了解。在这个过程中并没有牵扯太多的界面操作,所有的逻辑都在AppDelegate中:进入应用后如果没有注册通知,需要首先注册通知请求用户允许通知;一旦调用完注册方法,无论用户是否选择允许通知此刻都会调用应用程序的- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings代理方法,在这个方法中根据用户的选择:如果是允许通知则会按照前面的步骤创建通知并在一定时间后执行。&AppDelegate.m&//// &AppDelegate.m// &LocalNotification//// &Created by Kenshin Cui on 14/03/28.// &Copyright (c) 2014年 Kenshin Cui. All rights reserved.//&#import &AppDelegate.h&#import &KCMainViewController.h&&@interface AppDelegate ()&@end&@implementation AppDelegate&#pragma mark - 应用代理方法- (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];& &&& & //设置全局导航条风格和颜色& & [[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:23/255.0 green:180/255.0 blue:237/255.0 alpha:1]];& & [[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];& &&& & KCMainViewController *mainController=[[KCMainViewController alloc]init];& & _window.rootViewController=mainC& &&& & [_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 - 私有方法#pragma mark 添加本地通知-(void)addLocalNotification{& &&& & //定义本地通知对象& & UILocalNotification *notification=[[UILocalNotification alloc]init];& & //设置调用时间& & notification.fireDate=[NSDate dateWithTimeIntervalSinceNow:10.0];//通知触发的时间,10s以后& & notification.repeatInterval=2;//通知重复次数& & //notification.repeatCalendar=[NSCalendar currentCalendar];//当前日历,使用前最好设置时区等信息以便能够自动同步时间& &&& & //设置通知属性& & notification.alertBody=@&最近添加了诸多有趣的特性,是否立即体验?&; //通知主体& & notification.applicationIconBadgeNumber=1;//应用程序图标右上角显示的消息数& & notification.alertAction=@&打开应用&; //待机界面的滑动动作提示& & notification.alertLaunchImage=@&Default&;//通过点击通知打开应用时的启动图片,这里使用程序启动图片& & //notification.soundName=UILocalNotificationDefaultSoundN//收到通知时播放的声音,默认消息声音& & notification.soundName=@&msg.caf&;//通知声音(需要真机才能听到声音)& &&& & //设置用户信息& & notification.userInfo=@{@&id&:@1,@&user&:@&Kenshin Cui&};//绑定到通知上的其他附加信息& &&& & //调用通知& & [[UIApplication sharedApplication] scheduleLocalNotification:notification];}&#pragma mark 移除本地通知,在不需要此通知时记得移除-(void)removeNotification{& & [[UIApplication sharedApplication] cancelAllLocalNotifications];}就爱阅读网友整理上传,为您提供最全的知识大全,期待您的分享,转载请注明出处。
欢迎转载:
推荐:    周期本地推送通知(闹钟功能)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
周期本地推送通知(闹钟功能)
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢IOS开发(123)
Notification是智能手机应用编程中非常常用的一种传递信息的机制,而且可以非常好的节省资源,不用消耗资源来不停地检查信息状态(Pooling),在iOS下应用分为两种不同的Notification种类,本地和远程。本地的Notification由iOS下NotificationManager统一管理,只需要将封装好的本地Notification对象加入到系统Notification管理机制队列中,系统会在指定的时间激发将本地Notification,应用只需设计好处理Notification的方法就完成了整个Notification流程了。
本地Notification所使用的对象是UILocalNotification,UILocalNotification的属性涵盖了所有处理Notification需要的内容。UILocalNotification的属性有fireDate、timeZone、repeatInterval、repeatCalendar、alertBody、alertAction、hasAction、alertLaunchImage、applicationIconBadgeNumber、soundName和userInfo。
UILocalNotification的调度
其中fireDate、timeZone、repeatInterval和repeatCalendar是用于UILocalNotification的调度。fireDate是UILocalNotification的激发的确切时间。timeZone是UILocalNotification激发时间是否根据时区改变而改变,如果设置为nil的话,那么UILocalNotification将在一段时候后被激发,而不是某一个确切时间被激发。repeatInterval是UILocalNotification被重复激发之间的时间差,不过时间差是完全根据日历单位(NSCalendarUnit)的,例如每周激发的单位,NSWeekCalendarUnit,如果不设置的话,将不会重复激发。repeatCalendar是UILocalNotification重复激发所使用的日历单位需要参考的日历,如果不设置的话,系统默认的日历将被作为参考日历。
UILocalNotification的提醒内容
alertBody、alertAction、hasAction和alertLaunchImage是当应用不在运行时,系统处理
UILocalNotification提醒是需要的内容。alertBody是一串现实提醒内容的字符串(NSString),如果alertBody未设置的话,Notification被激发时将不现实提醒。alertAction也是一串字符(NSString),alertAction的内容将作为提醒中动作按钮上的文字,如果未设置的话,提醒信息中的动作按钮将显示为“View”相对文字形式。alertLaunchImage是在用户点击提醒框中动作按钮(“View”)时,等待应用加载时显示的图片,这个将替代应用原本设置的加载图片。hasAction是一个控制是否在提醒框中显示动作按钮的布尔值,默认值为YES。
UILocalNotification的其他部分
applicationIconBadgeNumber、soundName和userInfo将使UILocalNotification更完整。applicationIconBadgeNumber是显示在应用图标右上角的数字,这样让用户直接了解到应用需要处理的Notification。soundName是另一个UILocalNotification用来提醒用户的手段,在Notification被激发之后将播放这段声音来提醒用户有Notification需要处理,如果不设soundName的话,Notification被激发是将不会有声音播放,除去应用特制的声音以外,也可以将soundName设为UILocalNotificationDefaultSoundName来使用系统默认提醒声音。userInfo是Notification用来传递数据的NSDictionary。
登记UILocalNotification
在设置完UILocalNotification对象之后,应用需要在系统Notification处理队列中登记已设置完的UILocalNotification对象。登记UILocalNotification * localNotification的方式为:
& &[[UIApplication sharedApplication] &scheduleLocalNotification:localNotification];
在有些时候,应用可能需要直接激发一个Notification而不是等一段时间在激发,应用可以以下的方式直接触发已设好的Notification:
& &[[UIApplication sharedApplication] presentLocalNotificationNow:localNotification];
处理UILocalNotification
在提醒框动作按钮被点击后,应用开始运行时,可以在-(BOOL)application:didFinishLaunchingWithOptions:这个Application delegate方法中处理。可以通过以下方式来加载为最近未处理的Notification:
& &UILocalNotification * localNotif=[launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
如果应用正在运行时,可以通过覆盖在Application Delegate中的方法-(void)application:didReceiveLocalNotification:来处理Notification。作为方法的第二个参数为UILocalNotification对象,只需处理对象携带的userInfo来处理响应的动作。
取消UILocalNotification
可以使用以下两个方式来取消一个已经登记的Notification,第一个方式可以直接取消一个指定的Notification,第二个方式将会把该应用已登记的Notification一起取消
& &[[UIApplication sharedApplication] cancelLocalNotification:localNotification];
& &[[UIApplication sharedApplication] cancelAllLocalNotification];
本地Notification的机制在应用开发中非常有效,可以很好的帮助开发者管理一些指定时间需要发生的事件,例如闹钟类的应用。而且因为系统统一对Notification的管理,让同样的任务可以非常简单得被处理,而无需让应用浪费资源去等待事件的触发。
对本地通知的数量限制,iOS最多允许最近本地通知数量是64个,超过限制的本地通知将被iOS忽略。
// 执行通知一定要退出应用或挂起应用(进入后台)才能收到通知。
// 创建本地通知
UILocalNotification *notification = [[UILocalNotification alloc] init];
// 通知触发时间
// 10秒钟之后触发
notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:10];
// 通知时区
// 使用本地时区
notification.timeZone = [NSTimeZone defaultTimeZone];
// 通知提示内容
notification.alertBody = @&你收到一个通知&;
// 通知提示音
//使用默认的通知提示音
notification.soundName = UILocalNotificationDefaultSoundN
//&应用程序右上角显示的数字
notification.applicationIconBadgeNumber = 2;
//&数据字典
notification.userInfo = @{@&userName&: @&JIM&, @&age&: @(11)};
//&启动这个通知
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
//&进入前台,清除右上角图标
- (void)applicationWillEnterForeground:(UIApplication *)application
[application setApplicationIconBadgeNumber:0];
//&点顶端通知进入应用
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@&标题& message:notification.userInfo[@&userName&] delegate:nil cancelButtonTitle:@&确定& otherButtonTitles:nil];
[alert show];
&// 清除当前应用所有通知
[[UIApplication sharedApplication] cancelAllLocalNotifications];
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:124217次
积分:1904
积分:1904
排名:第16850名
原创:52篇
转载:88篇
评论:12条
(1)(1)(3)(10)(1)(5)(1)(5)(1)(34)(25)(12)(11)(30)(1)温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&2,Feedback Service:有时APNs尝试投递通知到一个设备上的应用,但是设备可能重复地拒绝投递,因为没有目标应用。这通常发生于卸载程序后。在这种情况下,APNs会通知provider--通过一个feedback服务。feedback服务为每个重复地投递通知失败的应用程序维持一个设备列表。provider应该获取这个设备列表并停止发送通知给他们。3,Quality of Service:APNs包括一个默认的Quality Of Service(QoS)组件,执行存储-转换功能。如果APNs尝试投递通知,但是设备离线,QoS存储通知。其只保持一个通知对于一个设备的每个应用:从provider上收到的最后的到那个应用的通知。当离线的设备又重新连接时,QoS转换存储的通知到设备上。QoS在删除通知之前保持通知一段限定的时间。4,安全技术:要使能provider和设备之间的通信,APNs必须为他们开放特定的入口。但是为了确保安全,它必须规范入口点的访问。为了这个目的,APNs请求两种不同的信任级别 for providers,devices和他们的通信. 这被称为 connection trust和token trust。5,Service-to-Device Connection Trust: TLS6,Provider-to-Service Connection Trust: TLS7,Token Generation and Dispersal(传播):&&&8,Token Trust(Notification):&9,Trust Components:要支持APNs的安全模式,provider和设备必须持有特定的证书,鉴权Certificate authority(CA)证书或tokens。1)Provider:2)Device:10,通知的payload:一个通知的payload的最大值是256bit;APNs拒绝超过限制的通知。记住通知的投递是尽力的并且是不保证的。每一个通知,provider都必须构成一个JSON字典对象并严格遵循RFC 4627.这个字典必须包含一个键值为aps的一个字典。aps字典包含一个或多个下面指定的属性:1)一个警告消息2)一个图标标记数字3)一个要播放的声音。如果通知被投递到设备时,应用没有运行,系统会显示警告信息,播放声音,标记数字。如果应用正在运行,系统会投递到应用程序代理并将通知作为一个参数。Provider可以在Apple保留的aps空间外,指定自定义的payload values .自定义的值必须使用JSON结构和简单类型:字典,数组,字符串,数字和布尔值。你不应该包括客户信息作为payload data。取而代之的,使用用来设置上下文或internal metrics的数据。任何通知动作都不应该是毁灭性的,例如删除设备上的数据。下面列出了payload中,aps字典中的键和期望的值:1)alert:字符串或字典。如果是字符串,它编程显示两个按钮的alert的消息文本:Close和查看。如果是指定字典,则看下面的解释。2)badge:number,如果这个属性缺失,图标标记将会被移除。3)sound:字符串:在应用束(app bundle)内的要播放的声音文件。如果声音文件不存在或其指定的是default,会播放默认声音。alert属性的子属性:1)body:消息文本。2)action-loc-key:字符串或空null:如果指定了一个字符串:警告将显示两个按钮。iOS会获得View的本地化字符串。如果value是空,系统显示一个警告只包括一个按钮,就是OK3)loc-key:字符串:警告消息字符串在localizable.strings文件的key。The key string can be formatted with %@ and %n$@ specifiers to take the variables specified in loc-args.4)loc-args:array of strings:取代loc-key中的占位符。5)launch-image:string:应用束内的图片的文件名;她可能包括扩展名或忽略它。图像用来显示动作按钮被点击时加载应用程序时显示的图像。如果这个属性未被指定,系统或者使用之前的快照,或者使用应用程序的info.plist文件中UILaunchImageFile键键值指定的图像,或使用Default.png。这个属性在iOS4.0以后有效。11,本地化字符串:例如:"alert" : { "loc-key" : "GAME_PLAY_REQUEST_FORMAT", "loc-args" : [ "Jenna", "Frank"] },当设备收到通知时,它将在当前语言的.lproj文件夹中的Localizable.strings文件中使用"GAME_PLAY_REQUEST_FORMAT"作为键值去查找相关的字符串值。假定当前的Localizable.strings文件中有下面的:"GAME_PLAY_REQUEST_FORMAT" = "%@ and %@ have invited you to play Monopoly";设备将显示警告消息如下:“Jenna and Frank have invited you to play Monopoly”.除了%@格式符,你还可以使用%n$@格式符,n是loc-args中的array的下标(从1开始).例如:"GAME_PLAY_REQUEST_FORMAT" = "%2$@ and %1$@ have invited you to play Monopoly";设备将显示警告消息如下:"Frank and Jenna have invited you to play Monopoly". (Jenna和Frank换了位置)12,JSON Payloads的例子:例子包括空白符和新行;为了更好的性能,provider应该删除空白符和新行字符。四,Provisioning and 开发:/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ProvisioningDevelopment/ProvisioningDevelopment.html#//apple_ref/doc/uid/TP-CH104-SW1五,Provider Communication with Apple Push Notification Service:发送通知: 通信服务器:gateway.(Production Environment)和 gateway.sandbox.(Development Enviroment)通信端口:2195需要 从mac电脑上导出相应的证书 .p12文件需要使用TSL或SSL连接到服务器简单的通知格式为:
通知不能超过256个字节,并且不能null-terminated。
发送成功与否,只要检查SSLWrite是否成功执行即可。这个成功只表示把通知正常发送到服务器,至于deviceToken是否合法,payload格式是否正确都不保证。
第二种通知格式:&
identifier为这个通知的唯一标识符
Expiry表示一个固定UNIX epoch日期,使用秒表示(UTC),何时通知变得无效,并且可以被丢弃。
发送成功与否,可判断服务器返回的包。如果不返回任何内容,则表示没有错误,返回的包格式如下:
第一个字节为8,是固定的命令字节。
第2个字节为状态码
后面为发送通知时给通知指定的唯一标识符。
Status code含义如下:
0表示没有错误发生
1表示Processing Error
2表示Missing Device Token
3表示Missing Topic
4表示Missing Payload
5表示Invalid Token size
6表示Invalid Topic size
7表示Invalid Payload size
8表示Invalid Token
255表示None(Unknown)
&Feedback服务:通信服务器: feedback. 或 feedback.sandbox.通信端口:2196需要 .p12文件需要TSL 或 SSL 连接到服务器返回包格式为:
前4个字节:表示时间,表示何时APNs确定该设备不可达。表示从(UTC)1970年到现在的秒。你应该使用时间戳来确定在这个时间之后,设备是否已经重新注册了。
接着的2个字节:一般为32,表示后面跟着的deviceToken的长度&
GitHub开源包: Redth / APNS-Sharp 地址:&&&简单用法:using JdSoft.Apple.Apns.Nstatic void Main(string[] args){&&& //你可能需要编辑的变量:&&& //---------------------------------&&& //True if you are using sandbox certificate, or false if using production&&& bool sandbox =&&& //这里放置deviceTokens,例如从数据库中读出,这里写死了两个&&&&&&& List&String& deviceTokens=new List&string&();&&&&&&& deviceTokens.Add("867beb4efeefb5ba824c9e949b93e666c696a7161cf58");&&&&&&& deviceTokens.Add("ab593e2b8fa6f688afdb2fe950bc735e");&&&&&&&&&& &&& //Put your PKCS12 .p12 or .pfx filename here.&&& //Assumes it is in the same directory as your app&&&&&&& string p12File = "c:/cer.p12";&&& //This is the password that you protected your p12File &&& //& If you did not use a password, set it as null or an empty string&&& string p12FilePassword = "123";&&& //要发送通知的数量&&& int count = 3;&&& // 发送多个通知之间的等待时间间隔,单位为ms&&& int sleepBetweenNotifications = 2000;&&& &&& &&& &&& //Actual Code starts below:&&& //--------------------------------&&& string p12Filename = System.bine(AppDomain.CurrentDomain.BaseDirectory, p12File);&&& &&& &&& &&& //最后一个参数为有多少个设备就建多少个连接&&& NotificationService service = new NotificationService(sandbox, p12Filename, p12FilePassword, deviceTokens.Count);&&& service.SendRetries = 5; //5 retries before generating notificationfailed event&&& service.ReconnectDelay = 5000; //5 seconds&&& service.Error += new NotificationService.OnError(service_Error); //增加委托函数&&& service.NotificationTooLong += new NotificationService.OnNotificationTooLong(service_NotificationTooLong); //增加委托函数&&& service.BadDeviceToken += new NotificationService.OnBadDeviceToken(service_BadDeviceToken); //增加委托函数&&& service.NotificationFailed += new NotificationService.OnNotificationFailed(service_NotificationFailed); //增加委托函数&&& service.NotificationSuccess += new NotificationService.OnNotificationSuccess(service_NotificationSuccess); //增加委托函数&&& service.Connecting += new NotificationService.OnConnecting(service_Connecting); //增加委托函数&&& service.Connected += new NotificationService.OnConnected(service_Connected); //增加委托函数&&& service.Disconnected += new NotificationService.OnDisconnected(service_Disconnected); //增加委托函数&&& &&& &&& &&& //The notifications will be sent like this:&&& //&&& &&& Testing: 1...&&& //&&& &&& Testing: 2...&&& //&&& &&& Testing: 3...&&& // etc...&&& for (int i = 1; i &= i++)&&& {&&& &&& //Create a new notification to send&&&&&&& &&& List&Notification& notificationS=new List&Notification&();&&&&&&& &&& foreach (String testDeviceToken in deviceTokens)&&&&&&& &&& {&&&&&&&&& &&& & Notification alertNotification = new Notification(testDeviceToken);&&& &&& & alertNotification.Payload.Alert.Body = string.Format("Testing {0}...", i);&&&&&&&&&&& &&& & alertNotification.Payload.Sound = "default";&&&&&&&&& &&& & alertNotification.Payload.Badge =&&&&&&&&& &&& & notificationS.Add(alertNotification);&&&&&&& &&& }&&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &&& &&& //Queue the notification to be sent&&&&&&& &&& foreach (Notification alertNotification in notificationS)&&&&&&& &&& {&&&&&&&&&&& &&& & if (service.QueueNotification(alertNotification))&&&&&&&&&&&&& &&& &&& Console.WriteLine("Notification Queued!");&&&&&&&&& &&& & else&&&&&&&&&&&&& &&& &&& Console.WriteLine("Notification Failed to be Queued!");&&&&&& &&& &&&& }&&&&&&&&&&&&&&& &&& &&& //Sleep in between each message&&&&&&& &&& if (i & count)&&&&&&& &&& {&&&&&&&&&&& &&& & Console.WriteLine("Sleeping " + sleepBetweenNotifications + " milliseconds before next Notification...");&&&&&&&&&&& &&& & System.Threading.Thread.Sleep(sleepBetweenNotifications);&&&&&&& &&& }&&& }&&& &&& &&& &&& Console.WriteLine("Cleaning Up...");&&& //First, close the service.& &&& //This ensures any queued notifications get sent befor the connections are closed&&& service.Close();&&& //Clean up&&& service.Dispose();&&& Console.WriteLine("Done!");&&& Console.WriteLine("Press enter to exit...");&&& Console.ReadLine();}...
阅读(13156)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'Local Notification和Push Notification--
本地通知和Push通知指南',
blogAbstract:'本地和Push通知指南本地Notification所使用的对象是UILocalNotification,UILocalNotification的属性涵盖了所有处理Notification需要的内容。UILocalNotification的属性有fireDate、timeZone、repeatInterval、repeatCalendar、alertBody、\n alertAction、hasAction、alertLaunchImage、applicationIconBadgeNumber、 soundName和userInfo。在Listing2-1中的方法创建并安排了一个通知来告知用户一个假设的to-do list。Listing 2-1& Creating, configuring, and scheduling a local notification- (',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:8,
publishTime:2,
permalink:'blog/static/',
commentCount:2,
mainCommentCount:1,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'无',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 notification 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信