亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS 10 推送高階篇(必看)

2020-07-26 03:10:38
字體:
來源:轉載
供稿:網友

推薦閱讀:

iOS10推送之基礎知識(必看篇)

這篇文章開始,我會跟大家好好講講,蘋果新發布的iOS10的所有通知類。

一、創建本地通知事例詳解:

注意啊,小伙伴們,本地通知也必須在appdelegate中注冊中心,通知的開關打不打開無所謂的,畢竟是本地通知,但是通知的接收的代理,以及通知點擊的代理,蘋果給合二為一了。所以大家還是需要在appdelegate中寫上這2個方法,還有不要忘記在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions注冊通知中心。如果使用極光推送的小伙伴,寫看一下我的基礎篇,辛苦大家啦

創建一個UNNotificationRequest類的實例,一定要為它設置identifier, 在后面的查找,更新, 刪除通知,這個標識是可以用來區分這個通知與其他通知

把request加到UNUserNotificationCenter, 并設置觸發器,等待觸發
如果另一個request具有和之前request相同的標識,不同的內容, 可以達到更新通知的目的

創建一個本地通知我們應該先創建一個UNNotificationRequest類,并且將這個類添加到UNUserNotificationCenter才可以。代碼如下:

// 1.創建一個UNNotificationRequestNSString *requestIdentifer = @"TestRequest";UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:requestIdentifer content:content trigger:trigger];// 2.將UNNotificationRequest類,添加進當前通知中心中[[UNUserNotificationCenter currentNotificationCenter] addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {}];

在創建UNNotificationRequest類時,官方的解釋是說,一個通知請求可以在預定通過時間和位置,來通知用戶。觸發的方式見UNNotificationTrigger的相關說明。調用該方法,在通知觸發的時候。會取代具有相同標識符的通知請求,此外,消息個數受系統限制。

上面的翻譯,看上去可能有些拗口,簡單來說,就是我們需要為UNNotificationRequest設置一個標識符,通過標識符,我們可以對該通知進行添加,刪除,更新等操作。

以下是完整的創建通知的代碼:

// 1.創建通知內容UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc] init];content.title = @"徐不同測試通知";content.subtitle = @"測試通知";content.body = @"來自徐不同的簡書";content.badge = @1;NSError *error = nil;NSString *path = [[NSBundle mainBundle] pathForResource:@"icon_certification_status1@2x" ofType:@"png"];// 2.設置通知附件內容UNNotificationAttachment *att = [UNNotificationAttachment attachmentWithIdentifier:@"att1" URL:[NSURL fileURLWithPath:path] options:nil error:&error];if (error) {NSLog(@"attachment error %@", error);}content.attachments = @[att];content.launchImageName = @"icon_certification_status1@2x";// 2.設置聲音UNNotificationSound *sound = [UNNotificationSound defaultSound];content.sound = sound;// 3.觸發模式UNTimeIntervalNotificationTrigger *trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:5 repeats:NO];// 4.設置UNNotificationRequestNSString *requestIdentifer = @"TestRequest";UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:requestIdentifer content:content trigger:trigger1];//5.把通知加到UNUserNotificationCenter, 到指定觸發點會被觸發[[UNUserNotificationCenter currentNotificationCenter] addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {}];

通過以上代碼,我們就可以創建一個5秒觸發本地通知,具體樣式可以看下圖

下拉放大content.launchImageName = @”icon_certification_status1@2x”;顯示的圖片是這行代碼的效果,如圖

根據上面內容,大家會發現在創建UNNotificationRequest的時候,會需要UNMutableNotificationContent以及UNTimeIntervalNotificationTrigger這兩個類。下面我就對相關的類,以及類擴展,做相應的說明。

1.UNNotificationContent以及UNMutableNotificationContent(通知內容和可變通知內容)

通知內容分為可變的以及不可變的兩種類型,類似于可變數組跟不可變數組。后續我們通過某一特定標識符更新通知,便是用可變通知了。

不管是可變通知還是不可變通知,都有以下的幾個屬性:

// 1.附件數組,存放UNNotificationAttachment類@property (NS_NONATOMIC_IOSONLY, copy) NSArray *attachments ;// 2.應用程序角標,0或者不傳,意味著角標消失@property (NS_NONATOMIC_IOSONLY, copy, nullable) NSNumber *badge;// 3.主體內容@property (NS_NONATOMIC_IOSONLY, copy) NSString *body ;// 4.app通知下拉預覽時候展示的圖@property (NS_NONATOMIC_IOSONLY, copy) NSString *launchImageName;// 5.UNNotificationSound類,可以設置默認聲音,或者指定名稱的聲音@property (NS_NONATOMIC_IOSONLY, copy, nullable) UNNotificationSound *sound ;// 6.推送內容的子標題@property (NS_NONATOMIC_IOSONLY, copy) NSString *subtitle ;// 7.通知線程的標識@property (NS_NONATOMIC_IOSONLY, copy) NSString *threadIdentifier;// 8.推送內容的標題@property (NS_NONATOMIC_IOSONLY, copy) NSString *title ;// 9.遠程通知推送內容@property (NS_NONATOMIC_IOSONLY, copy) NSDictionary *userInfo;// 10.category標識@property (NS_NONATOMIC_IOSONLY, copy) NSString *categoryIdentifier;

以上的的屬性,我都增加了相應的說明,大家可以對照我的注釋來使用。

2.UNNotificationAttachment (附件內容通知)

在UNNotificationContent類中,有個附件數組的屬性,這就是包含UNNotificationAttachment類的數組了。

@property (NS_NONATOMIC_IOSONLY, copy) NSArray *attachments ;

蘋果的解釋說,UNNotificationAttachment(附件通知)是指可以包含音頻,圖像或視頻內容,并且可以將其內容顯示出來的通知。使用本地通知時,可以在通知創建時,將附件加入即可。對于遠程通知,則必須實現使用UNNotificationServiceExtension類通知服務擴展。

創建附件的方法是attachmentWithIdentifier:URL:options:error:。在使用時,必須指定使用文件附件的內容,并且文件格式必須是支持的類型之一。創建附件后,將其分配給內容對象的附件屬性。 (對于遠程通知,您必須從您的服務擴展做到這一點。)

附件通知支持的類型如下圖:

下面是創建UNNotificationAttachment的方法:

+ (nullable instancetype)attachmentWithIdentifier:(NSString *)identifier URL:(NSURL *)URL options:(nullable NSDictionary *)options error:(NSError *__nullable *__nullable)error;

注意:URL必須是一個有效的文件路徑,不然會報錯

這里我再在說下options的屬性,一共有4種選項(這幾個屬性可研究死我了)

1UNNotificationAttachmentOptionsTypeHintKey此鍵的值是一個包含描述文件的類型統一類型標識符(UTI)一個NSString。如果不提供該鍵,附件的文件擴展名來確定其類型,常用的類型標識符有

kUTTypeImage,kUTTypeJPEG2000,kUTTypeTIFF,kUTTypePICT,kUTTypeGIF ,kUTTypePNG,kUTTypeQuickTimeImage等??吹竭@里你一定有疑問,這些類型導入報錯了?。?!我研究了蘋果文檔,發現大家需要添加以下框架才可以,具體大家可以通過以下類型來處理。

注意:

框架就是#import

使用方法如下:

dict[UNNotificationAttachmentOptionsTypeHintKey] = (__bridge id _Nullable)(kUTTypeImage);

2UNNotificationAttachmentOptionsThumbnailHiddenKey,是一個BOOL值,為YES時候,縮略圖將隱藏,默認為YES。如圖:

大家可以對照上面的圖來看,就明白是哪里的圖消失了。

使用方法如下:

dict[UNNotificationAttachmentOptionsThumbnailHiddenKey] = @YES;

3UNNotificationAttachmentOptionsThumbnailClippingRectKey剪貼矩形的縮略圖。這個密鑰的值是包含一個歸一化的CGRect 亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

久久av中文字幕| 日韩av在线精品| 日韩一中文字幕| 欧美性少妇18aaaa视频| 国产欧美日韩最新| 欧美日韩国产一中文字不卡| 亚洲区中文字幕| 国产欧美精品日韩精品| 国产极品jizzhd欧美| 成年人精品视频| 久久久国产视频91| 国产精品亚发布| 5566成人精品视频免费| 亚洲精品一区av在线播放| 久久久久久亚洲精品不卡| 91在线中文字幕| 亚洲国产高清自拍| 宅男66日本亚洲欧美视频| 精品久久久久久中文字幕| 综合136福利视频在线| 国产精品热视频| 在线精品高清中文字幕| 国产又爽又黄的激情精品视频| 成人黄色av播放免费| 欧美成人激情在线| 国产在线观看精品| 欧美午夜片在线免费观看| 久久免费视频网站| 91精品久久久久久久久久久久久| 午夜精品福利视频| 啊v视频在线一区二区三区| 亚洲精品国产精品国自产观看浪潮| 伊人亚洲福利一区二区三区| 奇米成人av国产一区二区三区| 欧美日韩国产一中文字不卡| 日韩电影大片中文字幕| 亚洲国产天堂久久综合| 亚洲经典中文字幕| 97色在线播放视频| 91精品国产自产91精品| 精品视频在线播放免| 成人两性免费视频| 精品久久久久久久久久国产| 在线精品视频视频中文字幕| 性欧美亚洲xxxx乳在线观看| 夜夜嗨av色一区二区不卡| 精品国产美女在线| 亚洲字幕在线观看| www.日韩欧美| 亚洲人线精品午夜| 国语自产精品视频在免费| 欧美精品久久久久久久| 欧美午夜性色大片在线观看| 日本国产高清不卡| 欧美成在线观看| 伊人久久大香线蕉av一区二区| 日韩国产精品一区| 综合国产在线观看| 日韩在线视频观看正片免费网站| 美日韩精品视频免费看| 久色乳综合思思在线视频| 在线国产精品播放| 精品亚洲一区二区三区在线播放| 亚洲一区二区三区毛片| 国产精品对白刺激| 日韩在线资源网| 91精品国产高清久久久久久久久| 亚洲女人被黑人巨大进入al| 亚洲精品美女久久久| 国产免费一区二区三区在线能观看| 久久久久久亚洲精品| 欧美一区在线直播| 91网站在线看| 久久99精品久久久久久琪琪| 中文字幕av一区二区三区谷原希美| 国产精品免费福利| 色综合久综合久久综合久鬼88| 国内免费久久久久久久久久久| 午夜精品久久久久久久男人的天堂| 欧美亚洲视频在线观看| 亚洲精品一区二区久| 国产91久久婷婷一区二区| 国产丝袜精品视频| 91精品国产自产91精品| 久久色精品视频| 欧美激情欧美激情在线五月| 久久夜精品va视频免费观看| 中文字幕亚洲字幕| 日韩精品亚洲视频| 欧美亚洲另类激情另类| 亚洲午夜av电影| 国产精品www网站| 欧美老妇交乱视频| 亚洲成人黄色在线| 国产精品网址在线| 国产精品久久久久久久久影视| 欧美性猛交视频| 欧美日韩国产一区中文午夜| 97久久精品视频| 欧美激情女人20p| 日本精品久久久| 国产专区欧美专区| 欧美成人在线免费视频| 欧美激情中文字幕在线| 性欧美办公室18xxxxhd| 一区二区亚洲精品国产| 久久国产精品久久久久| 久久av红桃一区二区小说| 欧美成人免费小视频| 欧美性猛交xxxx乱大交极品| 亚洲天堂av女优| 亚洲电影免费在线观看| 久久久在线免费观看| 精品美女国产在线| 精品国产区一区二区三区在线观看| 欧美巨乳在线观看| 亚洲精品91美女久久久久久久| 国产日韩欧美在线观看| 国产精品手机播放| 欧美高清一级大片| 国产+人+亚洲| 亚洲欧美日韩中文视频| 日韩高清电影好看的电视剧电影| 欧美成人午夜激情在线| 成人写真福利网| 91精品国产综合久久香蕉的用户体验| 中文字幕日韩在线视频| 在线亚洲国产精品网| 久久亚洲精品成人| 亚洲免费电影在线观看| 国产午夜精品久久久| 色多多国产成人永久免费网站| 亚洲欧洲av一区二区| 国内免费久久久久久久久久久| 欧美日韩视频在线| 欧洲成人性视频| 中文字幕一区二区精品| 性欧美激情精品| 2019av中文字幕| 国产精品久久久久久久久久久久久| 在线电影中文日韩| 亚洲最新av在线网站| 国产精品va在线播放我和闺蜜| 国产精品69精品一区二区三区| 亚洲精品按摩视频| 欧美激情极品视频| 日韩毛片在线看| 久久精品视频中文字幕| 精品美女永久免费视频| 欧美孕妇性xx| 一色桃子一区二区| 亚洲综合一区二区不卡| 国产精品欧美一区二区| 日韩激情视频在线播放| xxav国产精品美女主播| 亚洲国产一区二区三区四区| 久久久精品视频在线观看| 欧美性黄网官网| 国产精品成人av在线| 热久久视久久精品18亚洲精品| 日韩黄在线观看| 国产+人+亚洲| 日韩中文综合网| 精品久久国产精品|