iOS 10 推送高阶篇(必看)

2020-01-18 16:08:51于丽

使用上面的方法,可以得到一张图的阴影部分的图像,这张图像会是通知的缩略图。比如我下面的这个图,缩略图大家应该可以发现变了吧。

ios10,推送

这里为了理解,在给大家说几个”坐标点”:

(0,0,0.25,0.25)左上角的最小正方形

(0,0,0.5,0.5) 四分之一的正方形,左上角

(0.5,0.5,0.5,0.5)四分之一的正方形,右下角

(0.5,0,0.5,0.5)四分之一的正方形,左下角

(0.25,0.25,0.5,0.5)最中心的正方形

特别注意:

调试到这里的时候,我感觉苹果应该是有个bug,就是我在来回变化这个显示缩略图的frame的时候,来回改,永远显示为第一次写的frame。我在修改UNNotificationRequest的requestIdentifer属性后,可以变换属性。所以我猜测可能相同requestIdentifer的通知,算一个通知,所以只能调用更新的方法,来变化缩略图的吃不腻吧,或许也不是bug。

4UNNotificationAttachmentOptionsThumbnailTimeKey,一般影片附件会用到,指的是用影片中的某一秒来做这个缩略图;

使用方法如下:

dict[UNNotificationAttachmentOptionsThumbnailTimeKey] =@10;

这里我们可以直接传递一个NSNumber的数值,比如使用影片第10s的画面来做缩略图就按照上面的来写。此外,要注意的是,这个秒数必须是这个影片长度范围内的,不然报错。

3.UNTimeIntervalNotificationTrigger (通知触发模式)

这个我在!(这篇文章中已经初步介绍了,现在我在详细介绍下)[www.baidu.com]这篇文章中已经初步介绍了,现在我在详细介绍下。

1.UNPushNotificationTrigger (远程通知触发)一般我们不会使用的

2.UNTimeIntervalNotificationTrigger (本地通知) 一定时间之后,重复或者不重复推送通知。我们可以设置timeInterval(时间间隔)和repeats(是否重复)。

使用方法:

UNTimeIntervalNotificationTrigger *triggerOne = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:5 repeats:NO];

解释:上面的方法是指5秒钟之后执行。repeats这个属性,如果需要为重复执行的,则TimeInterval必须大于60s,否则会报* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'time interval must be at least 60 if repeating'的错误!**

3.UNCalendarNotificationTrigger(本地通知) 一定日期之后,重复或者不重复推送通知 例如,你每天8点推送一个通知,只需要dateComponents为8。如果你想每天8点都推送这个通知,只要repeats为YES就可以了。


// 周一早上 8:00 上班
NSDateComponents *components = [[NSDateComponents alloc] init];
// 注意,weekday是从周日开始的,如果想设置为从周一开始,大家可以自己想想~
components.weekday = 2;
components.hour = 8;
UNCalendarNotificationTrigger *trigger = [UNCalendarNotificationTrigger triggerWithDateMatchingComponents:components repeats:YES];