張偉華 朱燕
摘要:移動(dòng)互聯(lián)技術(shù)發(fā)展迅速,Android與iOS是移動(dòng)終端兩大主流設(shè)備,信息推送是移動(dòng)應(yīng)用程序開發(fā)中常見的應(yīng)用之一。該文介紹一種開發(fā)成本低、效率高的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)技術(shù),重點(diǎn)描述如何利用“個(gè)推推送”實(shí)現(xiàn)求助信息推送與接收,解決實(shí)際應(yīng)用中的問題。
關(guān)鍵詞:跨平臺(tái);個(gè)推推送;居家養(yǎng)老
1信息推送技術(shù)分析
移動(dòng)互聯(lián)發(fā)展迅速,信息推送是移動(dòng)應(yīng)用程序開發(fā)中常見的應(yīng)用之一。推送技術(shù)的實(shí)現(xiàn)方式為服務(wù)器向客戶端推送信息,客戶端首先注冊(cè),成功后,在后臺(tái)端服務(wù)器可以將服務(wù)器中相關(guān)的信息向?qū)?yīng)的用戶客戶端發(fā)送信息,信息推送技術(shù)再移動(dòng)應(yīng)用開發(fā)中得到廣泛應(yīng)用,其優(yōu)點(diǎn)在于信息發(fā)送的主動(dòng)性和及時(shí)性,可隨時(shí)將信息推送到用戶面前(客戶端)。
Android信息推送通常采用兩種方式:①Pull(拉)的方式,即客戶端每隔一段時(shí)間訪問服務(wù)器,看是否有更新的信息;②Push(推送)的方式,在服務(wù)器端有新信息后,就自動(dòng)將最新的信息Push到客戶端。目前采用Pull和Push方式的具體技術(shù)主要包括4種:簡(jiǎn)單輪詢、短信服務(wù)(sMS)、持久連接、長(zhǎng)輪詢。
iOS消息推送都是基于蘋果的服務(wù)器,英文簡(jiǎn)稱APNS,全稱為Apple Push Notification Service。iOS信息推送的流程分為三步:①應(yīng)用程序把要發(fā)送的消息、目標(biāo)設(shè)備的標(biāo)識(shí)打包發(fā)給APNS。②APNS在自身的已注冊(cè)Push服務(wù)的應(yīng)用列表中,查找有相應(yīng)標(biāo)識(shí)的設(shè)備,并把消息發(fā)送到設(shè)備。③iOS系統(tǒng)把發(fā)來的消息傳遞給相應(yīng)的應(yīng)用程序,并且按照設(shè)定彈出Push通知。具體流程如下圖,Provider是指某個(gè)蘋果軟件的Push服務(wù)器。
Android與iOS是當(dāng)前兩大主流移動(dòng)終端設(shè)備,常見移動(dòng)應(yīng)用程序開發(fā)模式是基于兩個(gè)系統(tǒng)平臺(tái)各自開發(fā)。對(duì)于軟件企業(yè)來說同一個(gè)應(yīng)用程序開發(fā)兩套系統(tǒng),其開發(fā)的人力成本和技術(shù)成本都比較高。利用第三方服務(wù)實(shí)現(xiàn)跨平臺(tái)開發(fā),是許多中小規(guī)模軟件企業(yè)正在探索的技術(shù)路線。
個(gè)推為第三方應(yīng)用提供了跨手機(jī)平臺(tái)、一致的、穩(wěn)定可靠的消息推送服務(wù),實(shí)現(xiàn)服務(wù)端到客戶端的消息主動(dòng)推送。第三方應(yīng)用可以實(shí)現(xiàn)針對(duì)單一目標(biāo)地址的推送,也可以實(shí)現(xiàn)群發(fā)消息推送,還可以通過指定目標(biāo)進(jìn)行定向群組推送。個(gè)推除了為第三方提供基本的透明消息傳輸,還提供了一些消息展示方式,實(shí)現(xiàn)在客戶端的通知提示、彈框操作等,幫助客戶陜速實(shí)現(xiàn)更為定制化的消息推送服務(wù)。個(gè)推目前支持Android、iOS手機(jī)平臺(tái)。其工作流程如下圖所示。
個(gè)推送系統(tǒng)的四個(gè)要素:①個(gè)推SDK,以jar的方式出現(xiàn),集成于第三方客戶端,解析第三方下行的數(shù)據(jù),并把結(jié)果透?jìng)鹘o第三方客戶端;也可以上行第三方定制的客戶端信息。②個(gè)推服務(wù)器,一側(cè)負(fù)責(zé)維護(hù)與成千上萬的個(gè)推SDK的長(zhǎng)時(shí)連接,另一側(cè)與第三方服務(wù)器對(duì)接,將第三方定制數(shù)據(jù)下行推送至個(gè)推SDK。③第三方服務(wù)器,:數(shù)據(jù)推送的發(fā)起者,通過對(duì)接個(gè)推服務(wù)器,將數(shù)據(jù)發(fā)送至第三方客戶端。④第三方客戶端,第三方集成個(gè)推SDK的客戶端,推送數(shù)據(jù)真正的接收者和展現(xiàn)者。
2老人求助信息推送解決方案
居家養(yǎng)老平臺(tái)是一款面向社會(huì)居家養(yǎng)老的服務(wù)型軟件,老人求助信息推送是該系統(tǒng)的一個(gè)基礎(chǔ)核心的功能。當(dāng)老人發(fā)生緊急情況時(shí),一鍵求助,子女及相關(guān)聯(lián)系人便會(huì)立即接收到老人發(fā)送的求助信息,調(diào)用手機(jī)內(nèi)置蜂鳴聲和求助音樂。
為了實(shí)現(xiàn)跨平臺(tái)開發(fā),本系統(tǒng)使用第三方信息推送服務(wù)器“個(gè)推推送”實(shí)現(xiàn)老人求助信息推送。老人發(fā)生緊急情況時(shí),點(diǎn)擊“緊急求助”按鈕,便可將求助信息發(fā)送給予該老人關(guān)聯(lián)的所有子女。老人發(fā)送求助后,通過AJAX方式傳遞用戶USERID到后臺(tái)數(shù)據(jù)庫好友關(guān)聯(lián)表查詢與其關(guān)聯(lián)的所有子女的USERID,返回后再循環(huán)向后臺(tái)數(shù)據(jù)庫求助表中插入求助信息。結(jié)合個(gè)推技術(shù),當(dāng)數(shù)據(jù)中多了一條求助信息時(shí),服務(wù)器便向前臺(tái)推送一條求助信息。當(dāng)子女將會(huì)立刻接收到老人發(fā)來的求助并在APP頁面上彈出一個(gè)求助框,并響起求助鈴聲,子女查看后結(jié)束求助音樂,同時(shí)可以撥打老人電話。