首先我們應(yīng)該知道APP開發(fā)中的推送功能到底是什么,它的價(jià)值何在?首先我們看一下定義:推送定義為在手機(jī)終端鎖屏狀態(tài)下,通知欄展示或者是在操作的情況下,前端彈出消息提示,點(diǎn)擊后可換起對(duì)應(yīng)的APP或在APP內(nèi)進(jìn)行跳轉(zhuǎn)到指定相應(yīng)的頁面。APP推送消息是通知客戶,引導(dǎo)客戶進(jìn)行下一步的活動(dòng),在營(yíng)銷過程當(dāng)中,推送是非常有價(jià)值的營(yíng)銷手段,可以引導(dǎo)用戶查看相應(yīng)的消息,喚起APP的使用和活性也是流量的重要來源。進(jìn)行APP的開發(fā)這個(gè)是必不可少的內(nèi)容。
接下來我們來看一下推送的分類:從應(yīng)用的功能來分類,推送主要分為三類應(yīng)用:第1類是即時(shí)通訊類的APP,例如微信、QQ等第;2類是新聞資訊類的APP,例如華爾街見聞或者是今日頭條等等;第3類統(tǒng)稱為商業(yè)APP,比如支付寶工具應(yīng)用APP以及美團(tuán)等其他類型的商業(yè)APP。每種類型的APP對(duì)推送的需求是不相同的,即時(shí)通信類的APP追求的是實(shí)時(shí)穩(wěn)定的到達(dá),此類的APP,一般通過自己的長(zhǎng)鏈接進(jìn)行消息推送,保證用戶在收到消息的時(shí)候能夠準(zhǔn)確的收到內(nèi)容。另外一些安卓廠商也會(huì)給予IM類的APP進(jìn)行一定的保護(hù),對(duì)相關(guān)進(jìn)程納入白名單,在清理后臺(tái)后也可以繼續(xù)使用。而新聞資訊類的語言和工具類的APP推送的機(jī)制基本是相同的,只是在頻率控制上面有很大的差異,因?yàn)樾侣劦膬?nèi)容很多,只是將重點(diǎn)的內(nèi)容和要聞推送給我們的用戶。而其他商用語音就是根據(jù)實(shí)際的用戶使用頻率要求來確定。
再來看一下消息推送的流程消息,推送是在消息系統(tǒng)創(chuàng)建好后進(jìn)入發(fā)送階段,服務(wù)端需要根據(jù)用戶的終端信息進(jìn)行路由,如果是IOS的系統(tǒng)蘋果的系統(tǒng),那么則會(huì)調(diào)用蘋果自身的推送信息機(jī)制來進(jìn)行推送,這個(gè)信息推送通常是統(tǒng)一的稱為APNs,如果用戶手機(jī)是安卓系統(tǒng),那么會(huì)根據(jù)不同廠商的方法去調(diào)用不同廠商的sdk進(jìn)行消息的推送,對(duì)于不同的系統(tǒng)版本支持消息的展現(xiàn)形式也是不相同的,例如蘋果的系統(tǒng)在iOS10以后,APP在前臺(tái)時(shí)是否通知欄展示此樣式是用戶可以靈活調(diào)整的。而安卓相對(duì)比較復(fù)雜,如果不是對(duì)接廠商相關(guān)的通道,那么內(nèi)部服務(wù)可能無需做過多復(fù)雜的開發(fā)工作,通過第三方消息推送平臺(tái)來實(shí)現(xiàn)推送,比如信鴿、個(gè)推等等,但是是否能成功的將信息推送到客戶端的SDK回執(zhí)數(shù)據(jù)反饋給發(fā)送方需要提供回調(diào)地址這個(gè)是需要設(shè)置的。接下來我們會(huì)對(duì)比三種方式,廠商通道,第三方推送服務(wù)和長(zhǎng)鏈接,把各自的優(yōu)勢(shì)進(jìn)行對(duì)比,由此來去判斷我們應(yīng)該使用什么樣的方式來進(jìn)行推送。
下發(fā)推送的三種類型:
第一類:推送賬號(hào)
推送客戶端PUSH SDK都會(huì)根據(jù)用戶的設(shè)備號(hào)生成一個(gè)對(duì)應(yīng)關(guān)系的TOKEN值。SDK內(nèi)部,如果使用第三方推送服務(wù),去第三方的SDK注冊(cè);如果是廠商,則去商城SDK注冊(cè)來進(jìn)行使用;如果使用自己長(zhǎng)連接,則去自己的SDK進(jìn)行注冊(cè),作為后續(xù)推送的標(biāo)識(shí)用戶的唯一ID。這個(gè)現(xiàn)在是同行的辦法。
消息路主要講解根據(jù)不同的業(yè)務(wù)場(chǎng)景,可能會(huì)定向推送給不同版本APP的用戶。因此服務(wù)端在通道能力路由的時(shí)候,不僅需要能夠區(qū)分通道,還要進(jìn)一步能夠針對(duì)用戶的手機(jī)終端進(jìn)行更加精細(xì)化的差異推送。
對(duì)于公司內(nèi)部運(yùn)營(yíng)或公司的相關(guān)數(shù)據(jù)均是以產(chǎn)品的id為準(zhǔn),用戶數(shù)據(jù)系統(tǒng)對(duì)接消息系統(tǒng)時(shí)也多為id,因此需建立id與推送TOKEN的關(guān)系,便于運(yùn)營(yíng)針對(duì)用戶進(jìn)行推送。但對(duì)于一些場(chǎng)景會(huì)需要針對(duì)未登錄的用戶也進(jìn)行推送,即全量推送;比如突發(fā)重大新聞資訊、大促等活動(dòng),所以運(yùn)營(yíng)系統(tǒng)需要提供全量推送功能。