文章分享至個人我的技術博客: https://cainluo.github.io/14973700585982.htmlhtml
Notification
在iOS
以來發展以來都是一個很是重要的功能之一, 各種App
都須要經過通知來推送消息, 否則怎麼告訴用戶, App
來消息推送啦, 或者有什麼安排事項到點要告訴你了, 這些都是須要推送的.git
但咱們都知道, 在以前的消息推送裏, 不管是UI
仍是內容, 都是很是的死, 不夠人性化, 好在蘋果爸爸也看到了這一點, 在iOS 10
就改善了這個東西.github
一樣我這裏也是Objective-C
版本, 喜歡看Swift
版本的能夠到這裏去看.微信
那麼在iOS 10
蘋果爸爸推出了UNUserNotification
這套框架, 除去了之前那套硬邦邦的通知以外, 咱們能夠額外給通知添加一些Action Button
, 或者是一些不同的內容, 說那麼多廢話, 直接來看項目吧.app
新工程和咱們之前建立的一毛同樣, 這裏就不過多的演示了, 文章後面有項目地址, 你們能夠自行去看.框架
咱們來看看AppDelegate.m
文件:ide
這裏要本身寫代碼的地方我都標上去了, 若是仍是看不懂, 那我就真的沒辦法了...佈局
再來看看NotificationController.m
文件, 這裏咱們直接忽略掉UI
的佈局, 由於這不是重點:spa
因爲這裏沒有仔細的去封裝代碼, 因此看起來有些臃腫, 這個你們就不要噴了....3d
對了, 我想起一個坑, 在我導入MP4
文件的時候, 我發現文件的Path
竟然爲nil
, 因而乎Google
了一下, 發現是我傻缺了, 忘記在這裏點一下:
關於怎麼添加一些Action Button
, 項目裏面沒有弄, 這裏給你們貼句代碼吧:
UNTextInputNotificationAction *inputAction = [UNTextInputNotificationAction
actionWithIdentifier:@"inputAction"
title:@"輸入"
options:UNNotificationActionOptionForeground
textInputButtonTitle:@"發送"
textInputPlaceholder:@"隨便說說"];
UNNotificationAction *goodbyeAction = [UNNotificationAction actionWithIdentifier:@"goodbyeAction"
title:@"再見"
options:UNNotificationActionOptionForeground];
UNNotificationAction *cancelAction = [UNNotificationAction actionWithIdentifier:@"cancelAction"
title:@"取消"
options:UNNotificationActionOptionDestructive];
UNNotificationCategory *category = [UNNotificationCategory categoryWithIdentifier:@"inputCategory" actions:@[inputAction,goodbyeAction,cancelAction] intentIdentifiers:@[] options:UNNotificationCategoryOptionCustomDismissAction];
[[UNUserNotificationCenter currentNotificationCenter] setNotificationCategories:@[category]];
複製代碼
一切就緒以後, 咱們就運行來看看:
這是一個正常通知:
這是添加了Image
的通知:
這是添加了一個Video
的通知, 重點是還能夠播放:
雖說蘋果爸爸在UNUserNotification
有了些花樣, 但這裏仍是須要注意一點, 這是有限制的, 否則這也太不蘋果了, 那麼是什麼限制呢? 能夠點進去這裏看看UNUserNotification類型文件限制, 一旦超出了, 出現什麼問題, 我就母雞了.
再搜這篇文章的時候, 忽然發現了有大神總結了WWDC2016筆記, 你們有須要能夠去看看~~
項目地址: https://github.com/CainRun/iOS-10-Characteristic/tree/master/5.UserNotifications