背景介紹
通過友盟統(tǒng)計(jì)到的崩潰勾哩,絕大多數(shù)都是定位到了極光推送的相關(guān)函數(shù)
項(xiàng)目中極光推送的版本是2.1.0襟铭,現(xiàn)在從官網(wǎng)上看到的版本是3.0.0
這個(gè)帖子的4樓為什么很多的 iOS app 都有秒退現(xiàn)象惨恭?有什么好方法避免它牲平?也說極光推送帶來了一堆崩潰問題
開發(fā)者技術(shù)郵箱:support@jiguang.cn皂贩,已經(jīng)發(fā)了郵件决采。當(dāng)天下午收到回復(fù)自沧,第二天打開郵箱就看到了。建議是升級(jí)到JPush iOS SDK v3.0.0
提問可以到極光社區(qū)推送技術(shù)支持QQ群:276533421树瞭,已經(jīng)申請(qǐng)加群拇厢。當(dāng)天加入,有問題可以直接在群里面提晒喷。當(dāng)前的版本是2.1.0孝偎,對(duì)方的建議是升級(jí)到3.0.0,估計(jì)對(duì)這一塊有修復(fù)凉敲。
極光社區(qū)有2.2.0版本崩潰的討論衣盾,可是也沒有結(jié)論JPushSDK崩潰,求解決
這個(gè)也是2.1.0的錯(cuò)誤寺旺,看來2.*版本的bug還是比較多的多次調(diào)用極光引起堆溢出
消息形式
通知,會(huì)出現(xiàn)在通知欄势决,走蘋果的APNs通道
自定義消息阻塑,不會(huì)出現(xiàn)在通知欄,走TCP長(zhǎng)鏈接果复,不走蘋果的APNs通道陈莽。App進(jìn)入后臺(tái)或者關(guān)掉之后會(huì)失效。主要用于產(chǎn)品內(nèi)部業(yè)務(wù)邏輯虽抄。
富文本传透,這個(gè)目前只有Android有,API不支持极颓,暫時(shí)不適合用于商業(yè)產(chǎn)品
本地通知朱盐,相當(dāng)于定時(shí)器,適用Todo菠隆、鬧鐘等任務(wù)兵琳,跟網(wǎng)絡(luò)無關(guān)
推送目標(biāo)
標(biāo)簽,每個(gè)用戶可以打多個(gè)標(biāo)簽骇径,不同的用戶可以打相同的標(biāo)簽躯肌。可以根據(jù)標(biāo)簽破衔,批量下發(fā) Push 消息清女。
別名,每個(gè)用戶只能指定一個(gè)別名晰筛,用來唯一確定用戶
Registration ID嫡丙,JPush 服務(wù)端分配的設(shè)備標(biāo)識(shí)符。同一個(gè)手機(jī)不同 APP 的 Registration ID 是不同的读第。用來對(duì)單一設(shè)備進(jìn)行推送曙博。
用戶分群,用戶分群的篩選條件有:標(biāo)簽怜瞒、地理位置父泳、系統(tǒng)版本、注冊(cè)時(shí)間吴汪、活躍用戶和在線用戶惠窄。分群有ID,可以根據(jù)這個(gè)ID漾橙,調(diào)用API對(duì)特定用戶分群進(jìn)行推送
推送原理
紅線部分就是iOS普通的通知業(yè)務(wù)杆融,JPush只是個(gè)“二傳手”,基本上蘋果API的一層封裝近刘,獲得了介入app的一個(gè)入口
藍(lán)線部分是TCP長(zhǎng)連接擒贸,IM應(yīng)用里面普遍都有的臀晃。對(duì)iOS來說,這個(gè)是有意義的介劫,不然話徽惋,前后臺(tái)都要自己寫代碼。并且這部分一般都是c和C++實(shí)現(xiàn)的座韵,實(shí)現(xiàn)和維護(hù)都不是很容易(相對(duì)于Object-c API來說)
1险绘, JPush Web Portal也是有意義的,可以不需要App Server介入誉碴,讓運(yùn)營(yíng)就有能力進(jìn)行消息推送宦棺。
集成
靜態(tài)庫,包含3個(gè)文件黔帕,直接接入工程
JPUSHService.h
jpush-ios-x.x.x.a
jcore-ios-x.x.x.a開啟Application Target的Capabilities->Push Notifications選項(xiàng)