推送的介绍

iOS
设备推送中除了远程推送几乎必不可少外,本地推送在一些情况下同样有着其特殊的作用。本地推送最常用的就是在软件中让用户自己设置一个提醒,比如闹钟,备忘提醒等。今天我们就以一个闹钟举例来说明一下本地推送的应用。

1.sectionHeaderHeight与sectionFooterHeight

历时8个月,Do.Fun终于上线了。可是上线后第二天,一个测试的同事,用自己的iPhone5手机,测出飞机时间不对的问题。而使用5s、6、6s时间正常。

本地推送中属性的介绍:

self.tableView.sectionHeaderHeight 代表整个table的头部高度

先来谈谈这个bug发生的场景,Do.Fun是为一款为小型口袋无人机DOBBY服务的应用。飞机开机释放WiFi,手机连接飞机热点。因为飞机没有时间,所以打开APP,APP会获取手机系统时间,然后发送设置时间指令,为飞机设置时间。

UILocalNotification的实例,主要有三类属性
  • scheduled time, 时间周期,用来指定iOS系统发送通知的日期和时间
  • notification
    type,通知类型,包括警告信息、动作按钮的标题、应用图标上的badge和播放的声音;
  • 自定义数据,本地通知可以包含一个dictionary类型的本地数据

self.tableView.sectionFooterHeight 代表整个table的尾部高度

因为给飞机设置时间的指令数据包中,时间占8个字节。因此我就选用了long来接受从手机获取的当前系统时间。代码如下:

一个简单的闹钟实现

// iOS8后,需要添加这个注册,才能得到授权

澳门微尼斯人手机版 1注册.png澳门微尼斯人手机版 2获取时间.png

澳门微尼斯人手机版 3sectionHeaderHeight与sectionFooterHeight的表示

NSDate *datenow = [NSDate date];//现在时间//转换时区NSTimeZone *zone = [NSTimeZone systemTimeZone];NSInteger interval = [zone secondsFromGMTForDate:datenow];NSDate *localeDate = [datenow dateByAddingTimeInterval: interval];NSTimeInterval time=[localeDate timeIntervalSince1970]*1000;long i=time; //NSTimeInterval返回的是double类型

发表评论

电子邮件地址不会被公开。 必填项已用*标注