iOS Push Story

簡(jiǎn)介

iOS中可以通過(guò)兩個(gè)Extension來(lái)推送消息
UNNotificationServiceExtension(通知服務(wù)擴(kuò)展)
An object that modifies the content of a remote notification before it's delivered to the user.
在收到推送后勃教,展示推送前可以做一些事情淤击,例如增加附件、網(wǎng)絡(luò)請(qǐng)求等操作故源,用戶不需要打開(kāi)App就可以快速瀏覽內(nèi)容


UNNotificationContentExtension(通知內(nèi)容擴(kuò)展)
An object that presents a custom interface for a delivered local or remote notification.
可以自定義推送界面污抬,但這個(gè)界面不能接受任何點(diǎn)擊事件,與用戶沒(méi)有交互绳军,交互需要使用Notification的actions來(lái)處理交互事件印机。
與一般推送不一樣,Push Story是一條2頁(yè)以上6頁(yè)一下门驾,帶圖片通過(guò)Braze平臺(tái)發(fā)布的推送射赛,這里是Braze配置Push Story的官方文檔

第一步

在項(xiàng)目中添加一個(gè)Notification Content Extension Target,項(xiàng)目中會(huì)有一個(gè)新的文件夾包括
NotificationViewController.swift
MainInterface.storyboard
Info.plist

第二步

在主程序中開(kāi)啟Background fetchRemote Notification兩個(gè)選項(xiàng)

并添加用于和主程序共享數(shù)據(jù)的APP Group奶是,主程序和Extension都需要勾選同一個(gè)APP Group
AppGroup: allows data sharing between two different apps or even app and widgets by creating one common shared path (like document directory). Data saved over there can be accessed by any app which is associated with that particular AppGroup. It is an offline data sharing between apps.
簡(jiǎn)單說(shuō)就是一個(gè)連接主程序和Extension的橋梁

第三步

在Extension的Linked Frameworks and Libraries中添加AppboyPushStory.framework

第四步

MainInterface.storyboard中按照需求完成Push Notification的布局楣责,UNNotificationServiceExtensionUNNotificationContentExtension最大的不同就是后者可以自定義界面
NotificationViewController.swift寫(xiě)必要的代碼處理數(shù)據(jù)源

class NotificationViewController: UIViewController, UNNotificationContentExtension {

    @IBOutlet weak var storiesView: ABKStoriesView!
    var dataSource: ABKStoriesViewDataSource!

    func didReceive(_ notification: UNNotification) {
        dataSource = ABKStoriesViewDataSource(notification: notification, storiesView: storiesView, appGroup: "your app group")
    }

    func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void) {
        let option: UNNotificationContentExtensionResponseOption = dataSource.didReceive(response)
        completion(option)
    }

    override func viewWillDisappear(_ animated: Bool) {
        dataSource.viewWillDisappear()
        super.viewWillDisappear(animated)
    }
}
第五步

在主程序中更新集成Braze的配置

let appboyOptions = [ABKPushStoryAppGroupKey: "your app group"]
        Appboy.start(withApiKey: Constants.brazeToken, in: application, withLaunchOptions: launchOptions, withAppboyOptions: appboyOptions)
第六步

在plist中完成設(shè)置

Info.plist

notification.png

plist中UNNotificationExtensionDefaultContentHidden :是否顯示默認(rèn)的部分,就是Notification的題目與內(nèi)容體
UNNotificationExtensionInitialContentSizeRatio :是Notification的橫縱比聂沙,可以根據(jù)需求設(shè)置
UNNotificationExtensionCategory:是控制Notification Action的秆麸,需要在Appdelegate中寫(xiě)相應(yīng)的代碼,否則不會(huì)出現(xiàn)Notification Action

這里的UNNotificationExtensionCategory = ab_cat_push_story_v2是因?yàn)锽raze已經(jīng)封裝好了對(duì)應(yīng)的5種情況及汉,見(jiàn)下圖


到這里就是官方文檔對(duì)于Push Story的配置指導(dǎo)沮趣,按照這個(gè)流程走下來(lái)發(fā)現(xiàn)效果和網(wǎng)站預(yù)覽的并不一樣
網(wǎng)站預(yù)覽
預(yù)覽有Next與Go To App兩個(gè)按鈕,但現(xiàn)在推送出來(lái)并沒(méi)有坷随,因?yàn)楹雎粤俗铌P(guān)鍵的一步

第七步

設(shè)置Categorise將Braze封裝好的取出來(lái)加進(jìn)NotificationCategories

let appboyCategorise = ABKPushUtils.getAppboyUNNotificationCategorySet()
        UNUserNotificationCenter.current().setNotificationCategories(appboyCategorise)

按照這八部走下來(lái)房铭,通過(guò)Braze平臺(tái)推松Push Story就完成啦,下面是最終結(jié)果


最終效果.gif

ps:此文章針對(duì)已經(jīng)配置好Braze推送的情況甸箱,就是官網(wǎng)文檔對(duì)應(yīng)的第一步


未經(jīng)授權(quán)育叁,禁止轉(zhuǎn)載!
尊重原創(chuàng)芍殖,轉(zhuǎn)載請(qǐng)注明出處豪嗽,謝謝!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末豌骏,一起剝皮案震驚了整個(gè)濱河市龟梦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窃躲,老刑警劉巖计贰,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蒂窒,居然都是意外死亡躁倒,警方通過(guò)查閱死者的電腦和手機(jī)荞怒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)秧秉,“玉大人褐桌,你說(shuō)我怎么就攤上這事∠笥” “怎么了荧嵌?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)砾淌。 經(jīng)常有香客問(wèn)我啦撮,道長(zhǎng),這世上最難降的妖魔是什么汪厨? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任赃春,我火速辦了婚禮,結(jié)果婚禮上劫乱,老公的妹妹穿的比我還像新娘聘鳞。我一直安慰自己,他們只是感情好要拂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著站楚,像睡著了一般脱惰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上窿春,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天拉一,我揣著相機(jī)與錄音,去河邊找鬼旧乞。 笑死蔚润,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的尺栖。 我是一名探鬼主播嫡纠,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼延赌!你這毒婦竟也來(lái)了除盏?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤挫以,失蹤者是張志新(化名)和其女友劉穎者蠕,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體掐松,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡踱侣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年粪小,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抡句。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡探膊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出玉转,到底是詐尸還是另有隱情突想,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布究抓,位于F島的核電站猾担,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏刺下。R本人自食惡果不足惜绑嘹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望橘茉。 院中可真熱鬧工腋,春花似錦、人聲如沸畅卓。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)翁潘。三九已至趁冈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拜马,已是汗流浹背渗勘。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留俩莽,地道東北人旺坠。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像扮超,于是被迫代替她去往敵國(guó)和親取刃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • iOS 10 came 在今年 6月14號(hào) 蘋(píng)果開(kāi)發(fā)者大會(huì) WWDC 2016 之后出刷,筆者趕緊就去 apple 的...
    pikacode閱讀 8,505評(píng)論 30 39
  • 本文作者:陳裕發(fā)蝉衣, 騰訊系統(tǒng)測(cè)試工程師,由騰訊WeTest整理發(fā)表巷蚪。 1病毡、引言 開(kāi)發(fā)iOS系統(tǒng)中的Push推送,通...
    SuGrand閱讀 4,981評(píng)論 5 22
  • 網(wǎng)上介紹iOS Push的文章有很多屁柏,但是大部分都總結(jié)得非常零散啦膜,加上之前也一直沒(méi)好好總結(jié)過(guò)有送,對(duì)某些地方也不求甚解...
    紙簡(jiǎn)書(shū)生閱讀 2,849評(píng)論 1 29
  • 對(duì)許多人來(lái)說(shuō),保護(hù)面子需要集中表現(xiàn)在他們生活中的一個(gè)特定角色僧家。比如雀摘,薩姆認(rèn)為自己是一位為孩子奉獻(xiàn)并且和他們...
    鄧潔兒閱讀 162評(píng)論 0 0
  • 2018年12月中旬,下旬八拱,一年一度的高級(jí)職稱評(píng)聘開(kāi)始了阵赠。作為評(píng)聘小組的成員,遇見(jiàn)了太多優(yōu)秀的人肌稻,見(jiàn)識(shí)了太...
    Lily_aba3閱讀 342評(píng)論 0 2