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

首頁 > 系統 > iOS > 正文

iOS12新特性之推送通知詳解

2019-10-21 18:40:53
字體:
來源:轉載
供稿:網友

序言

眾所周知,iOS中消息推送扮演了不可或缺的位置。不管是本地通知還是遠程通知無時不刻的在影響著我們的用戶體驗,以致于在iOS10的時候蘋果對推送大規模重構,獨立了已 UserNotifications 和 UserNotificationsUI 兩個單獨的framework,可見重要性一斑。針對于WWDC18蘋果又給我們帶來了什么驚喜呢?

新特性

  • Grouped notifications 推送分組
  • Notification content extensions 推送內容擴展中的可交互和動態更改Action
  • Notification management 推送消息的管理
  • Provisional authorization 臨時授權
  • Critical alerts 警告性質的推送

推送分組

隨著手機上應用的增多,尤其QQ和微信這兩大聊天工具,當手機鎖屏的時候,伴隨著就是好滿屏的推送消息。這一現象不知大家有沒有覺著不高效和體驗性比較差呢?蘋果針對鎖屏情況下,對消息進行了分組,從而有效的提高了用戶的交互體驗,分組形式如下:

iOS12,推送通知

分組形式:

  • 蘋果會自動幫我們以APP的為分類依據進行消息的分組;
  • 如果我們設置了 threadIdentifier 屬性則以此屬性為依據,進行分組。

iOS12,推送通知

代碼如下:

let content = UNMutableNotificationContent() content.title = "Notifications Team" content.body = "WWDC session after party" content.threadIdentifier = "notifications-team-chat"//通過這個屬性設置分組,如果此屬性沒有設置則以APP為分組依據

摘要(Summary)格式定制

當蘋果自動將推送消息的歸攏到一起的時候,最下邊會有一個消息摘要。默認格式是: n more notifications from xxx 。不過此格式我們是可以定制的。

第一種

let summaryFormat = "%u 更多消息啦啦"return UNNotificationCategory(identifier: "category-identifier",actions: [],intentIdentifiers: [],hiddenPreviewsBodyPlaceholder: nil,categorySummaryFormat: summaryFormat,options: [])

第二種 let summaryFormat = "%u 更多消息啦啦!來自OceanFish"

let content = UNMutableNotificationContent() content.body = "..." content.summaryArgument = "OceanFish"

同一個category的不同格式,蘋果會將其合并在一起;并且不同的 summaryArgument 蘋果也會將其默認合并到一起進行顯示

也可以通過 let summaryFormat = NSString.localizedUserNotificationString(forKey: "NOTIFICATION_SUMMARY", arguments: nil) 來進行本地化服務

數字定制

有時會出現另一個場景:比如發送了2條推送消息,一條是“你有3個邀請函”,另一條是“你有5個邀請函”。那摘要則會顯示你有2更多消息。這顯然不是我們想要的!我們最好的期望肯定是"你有8個邀請函"。那這種效果怎么顯示呢?

蘋果給我們提供了另外一個屬性,結合上邊的摘要(Summary)格式定制我們可以實現以上效果。

let content = UNMutableNotificationContent() content.body = "..." content.threadIdentifier = "..." content.summaryArgument = "Song by Song" content.summaryArgumentCount = 3

當多個消息歸攏到一起的時候,蘋果會將 summaryArgumentCount 值加在一起,然后進行顯示

推送內容擴展中的可交互和動態更改Action

之前消息是不支持交互的和動態更改Action的,比如界面有個空心喜歡按鈕,用戶點擊則變成了實心喜歡按鈕;有個Acction顯示“喜歡”,用戶點擊之后變成"不喜歡"

推送界面可交互

iOS12,推送通知

如上圖推送界面有個空心喜歡按鈕

首先配置Notification Content Extention的 UUNNotificationExtensionUserInteractionEnabled 為 YES

iOS12,推送通知

然后代碼實現

import UserNotificationsUIclass NotificationViewController: UIViewController, UNNotificationContentExtension { @IBOutlet var likeButton: UIButton? likeButton?.addTarget(self, action: #selector(likeButtonTapped), for: .touchUpInside) @objc func likeButtonTapped() {  likeButton?.setTitle("♥", for: .normal)  likedPhoto() }}

Action動態化

// Notification Content Extensionsclass NotificationViewController: UIViewController, UNNotificationContentExtension { func didReceive(_ response: UNNotificationResponse, completionHandler completion:  (UNNotificationContentExtensionResponseOption) -> Void) {  if response.actionIdentifier == "like-action" {   // Update state...   let unlikeAction = UNNotificationAction(identifier: "unlike-action",             title: "Unlike", options: [])   let currentActions = extensionContext?.notificationActions   let commentAction = currentActions![1]   let newActions = [ unlikeAction, commentAction ]   extensionContext?.notificationActions = newActions  } }}

performNotificationDefaultAction() 用于點擊推送的時候啟動應用; dismissNotificationContentExtension() 用于關閉鎖屏頁面的推送具體一條消息

推送消息的管理

這個主要是蘋果針對消息增加了一個“管理”的按鈕,消息左滑即可出現。

幫助我們快速的針對消息進行設置。

  • Deliver Quietly 則會不會播放聲音。
  • turn off 則會關閉推送
  • Setttings 我們可以自己定制
import UIKitimport UserNotificationsclass AppDelegate: UIApplicationDelegate, UNUserNotificationCenterDelegate { func userNotificationCenter(_ center: UNUserNotificationCenter,        openSettingsFor notification: UNNotification? ) { }}

臨時授權

臨時授權主要體現就是推送消息過來會有兩個按鈕,會主動讓用戶自己選擇

let notificationCenter = UNUserNotificationCenter.current()noficationCenter.requestAuthorization(options: [.badge,.alert,.sound,.provisional]) { (tag, error) in}

在申請權限的時候,加上 provisional 即可。

警告消息

比如家庭安全、健康、公共安全等因素的時候。此消息需要用戶必須采取行動。最簡單的一個場景是家里安裝了一個攝像頭,我們去上班了,此時如果家中有人,則攝像頭會推送消息給我們。

證書申請 https://developer.apple.com/contact/request/notifications-critical-alerts-entitlement/

本地權限申請

let notificationCenter = UNUserNotificationCenter.current()noficationCenter.requestAuthorization(options: [.badge,.alert,.sound,.criticalAlert]) { (tag, error) in}

在申請權限的時候,加上 criticalAlert 。

播放聲音

let content = UNMutableNotificationContent()content.title = "WARNING: LOW BLOOD SUGAR"content.body = "Glucose level at 57."content.categoryIdentifier = "low-glucose—alert"content.sound = UNNotificationSound.criticalSoundNamed(@"warning-sound" withAudioVolume: 1.00)
// Critical alert push payload{ // Critical alert push payload {  "aps" : {   "sound" : {    "critical": 1,   }  }  "name": "warning-sound.aiff",  "volume": 1.0 }}

總結

至此WWDC中關于推送都已經整理完畢。大家有不懂的歡迎留言相互交流

引用

源碼Using, Managing, and Customizing Notifications

What's New in User Notifications

Using Grouped Notifications

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91av国产在线| 久久影院资源网| 国产精品精品久久久| 国产成人综合亚洲| 久久亚洲国产精品| 久久久久久久成人| 日韩av日韩在线观看| 欧美成人午夜激情视频| 色妞色视频一区二区三区四区| 欧美丝袜一区二区三区| 92看片淫黄大片看国产片| 高跟丝袜一区二区三区| 欧美片一区二区三区| 亚洲国产高清自拍| 国产亚洲精品美女| 国产一区二区视频在线观看| 国产精品视频久| 亚洲影院在线看| 亚洲欧美在线免费| 欧美性xxxxxxx| 亚洲精品视频网上网址在线观看| 91在线网站视频| 国产精品露脸自拍| 国产精品美女www爽爽爽视频| 欧美大全免费观看电视剧大泉洋| 久久人人看视频| 日韩av一区在线观看| 91精品在线国产| 伊人久久久久久久久久久| 一区二区欧美激情| 日韩精品在线第一页| 亚洲精品免费在线视频| 欧美激情小视频| 国产精品伦子伦免费视频| 中文一区二区视频| 国产精品久久久久免费a∨| 精品国产一区二区三区久久久| 久久精品国产视频| www.久久久久久.com| 欧美孕妇与黑人孕交| 秋霞午夜一区二区| 亚洲第一福利在线观看| 欧美午夜精品久久久久久久| 亚洲国产成人精品久久久国产成人一区| 欧美综合一区第一页| 精品福利视频导航| 国产成人久久久| 久久综合伊人77777| 久久精品中文字幕一区| 久久久久久久一区二区| 91日韩在线播放| 亚洲成人网在线| 欧美日韩亚洲91| 亚洲欧美中文日韩v在线观看| 日韩精品中文在线观看| 国产精品午夜一区二区欲梦| 中文字幕少妇一区二区三区| 久久精品亚洲国产| 国语自产精品视频在线看抢先版图片| 欧美性videos高清精品| 日韩在线观看免费网站| 国产成人福利网站| 国产精品免费电影| 亚洲影视中文字幕| 亚洲精品午夜精品| 91精品国产91久久久久久不卡| 色老头一区二区三区| 2019中文字幕免费视频| 久久精品中文字幕电影| 欧美日韩美女在线| 精品久久久久久中文字幕大豆网| 日韩视频免费在线| 亚洲欧美日韩爽爽影院| 久久精品小视频| 日韩精品免费看| 性色av香蕉一区二区| 日韩在线不卡视频| 欧美疯狂做受xxxx高潮| 18一19gay欧美视频网站| 国产精品扒开腿做爽爽爽男男| 久久久久99精品久久久久| 国产精品电影网| 成人a在线视频| 伊人青青综合网站| 国产精品久久久久久久久久久久久久| 日本不卡视频在线播放| 欧美综合一区第一页| 日韩av在线免费观看一区| 欧美性受xxxx白人性爽| 日韩中文字幕国产| 中文字幕一区电影| 亚洲人成在线播放| 清纯唯美日韩制服另类| 久久久久久久激情视频| 深夜福利一区二区| 亚洲一区av在线播放| 欧美午夜丰满在线18影院| 国产日韩精品入口| 国产日韩在线看片| 中文字幕亚洲无线码在线一区| 中文字幕亚洲在线| 国产精品一区二区性色av| 狠狠躁夜夜躁人人爽天天天天97| 中文字幕日韩欧美精品在线观看| 久久久国产精品免费| 国产在线播放91| 95av在线视频| 欧美在线视频网| 中文字幕日韩免费视频| 亚洲国产欧美一区二区丝袜黑人| 最近2019年手机中文字幕| 亚洲视频综合网| 国产精品自产拍高潮在线观看| 午夜精品一区二区三区视频免费看| 国产小视频国产精品| 欧美视频裸体精品| 国产成人在线播放| 亚洲跨种族黑人xxx| 国产精品亚洲第一区| 国产一区二区黄| 国产午夜精品美女视频明星a级| 丝袜一区二区三区| 北条麻妃一区二区三区中文字幕| 久久久久久久久久久av| 国内伊人久久久久久网站视频| 久久免费视频这里只有精品| 国产精品色婷婷视频| 久久久久久综合网天天| 欧美性生交xxxxx久久久| 亚洲综合精品伊人久久| 国产亚洲精品久久久久久牛牛| 亚洲男人7777| 国产精品视频区1| 菠萝蜜影院一区二区免费| 国产日韩在线一区| 国产欧美最新羞羞视频在线观看| 国产男人精品视频| 97在线视频免费| 国产精品9999| 欧美电影在线观看完整版| 久久久亚洲欧洲日产国码aⅴ| 国产一区二区三区视频在线观看| 欧美日韩免费一区| 亚洲精品国产精品国产自| 久久久免费观看| 国产成人一区二区三区小说| 揄拍成人国产精品视频| 久久精品久久久久电影| 一区二区亚洲欧洲国产日韩| 九九久久综合网站| 久久久电影免费观看完整版| 性欧美视频videos6一9| 中文字幕欧美日韩精品| 国产精品久久综合av爱欲tv| 色悠久久久久综合先锋影音下载| 国产成人avxxxxx在线看| 久久久久成人网| 亚洲最新视频在线| 最近2019中文字幕mv免费看| 91亚洲午夜在线| 久久男人av资源网站| 欧美理论电影在线播放| 成人a在线观看| 亚洲经典中文字幕|