使用友盟(umeng)完成消息推送

最近幾個項目都有app端,不可避免的存在消息推送的業(yè)務,現(xiàn)在就記錄一下java端使用友盟(umeng)第三方完成消息推送功能,需要配合IOS和Android端開發(fā)。

參考友盟官網(wǎng)U-Push API集成文檔

一 : Java端配置友盟參數(shù)

? ? ? ? 需要Android和IOS相關的key和aliasType (別名,即Android和IOS在友盟上使用的注冊信息,比如,aliasType是account,那么友盟會根據(jù)賬戶推送,也可以是groupId,可以根據(jù)組織為單位推送,這用就完成了群推送的管理,Android和IOS的別名上限是10個)

? ? ? ? 參數(shù)的設置有兩種方式 :

? ? ? ? ① :在application.yml文件中配置(單推) , 在工具類上調(diào)用參數(shù)方式為?@ConfigurationProperties(prefix ="umKeys")

? ? ? ? ?# 友盟key參數(shù)

????????umKeys:

? ? ????????# android 相關key

? ? ????????androidAppkey: 5b601612f43e4861ff0000db

????????????androidAppMasterSecret: 0dps2sobzavn3kfv3wrnthlbr5ftnbkd

????????????# ios 相關key

? ? ????????iosAppkey: 5b6018deb27b0a2c67000255

????????????iosAppMasterSecret: 4b4huy4ohwedlqrvk4wevqhpiay2zy75

????????????# 別名

? ? ? ? ? ? aliasType: account

? ? ? ? ? ? ② : 在umKeys.properties 上配置 (群推), 在工具類上調(diào)用參數(shù)方式為?@PropertySource({"classpath:config/${spring.profiles.active}/umKeys.properties" })

? ??????????# android 相關key

????????????umKeys.androidAppkey=5b601612f43e4861ff0000db

????????????umKeys.androidAppMasterSecret=0dps2sobzavn3kfv3wrnthlbr5ftnbkd

????????????# ios 相關key

????????????umKeys.iosAppkey=5c7896a00cafb22fb7001867

????????????umKeys.iosAppMasterSecret=fp01stg7zsxmdtxldbhqq2gatt25eqoh

????????????# 別名

????????????umKeys.aliasType=sysGroupId


二 : 編寫工具類

?代碼不好貼,直接截圖吧

工具類代碼1
工具類代碼2

查看工具類可以知道,我們需要去將需要的字段賦值,根據(jù)項目的具體情況選擇,上述的工具類屬于共同類型,有特殊需求的推送可以參考U-Push API集成文檔

?????使用*.yml文件配置參數(shù)的獲取方式

? ? 使用*.yml文件配置參數(shù)的獲取方式


三 : 工具類(PushClient)源碼分析?

PushClient源碼

? 你會發(fā)現(xiàn),我們在調(diào)用send方法的時候,默認返回的是true,即不考慮返回值的情況下直接使用send方法即可,當我們需要對發(fā)送結(jié)果進行獲取時,需要自己重寫一下源碼內(nèi)容


四 : Java推送

????????① : PushClientpushClient?

? ??????????????private PushClientpushClient =new PushClient();

? ? ? ? ② : 無需考慮返回值的調(diào)用

?無需考慮返回值的調(diào)用

? ? ? ?注意 : 這里的工具類參數(shù)和上述的不同

? ? ? ? ③ :需要考慮返回值的調(diào)用

需要考慮返回值的調(diào)用

? ? ? 源碼copy出來,進行修改,使其返回參數(shù)

修改源碼方法


五 :補充為什么會使用兩種友盟參數(shù)設置

? ? ? ? ? ? ????起初項目環(huán)境是常用的Spring MVC ,Spring Boot , Mybatis Plus 架構(gòu),使用的是*.yml文件配置參數(shù),可以調(diào)用到數(shù)據(jù)。后面我們改用了自己公司封裝的架構(gòu),然后是Spring Cloud 基于Spring Boot的微服務架構(gòu)。導致使用*.yml文件配置參數(shù)顯示spring boot configuration annotation processor not found in classpath,添加依賴無法生效

類路徑中找不到Spring引導配置注釋處理器

網(wǎng)上說添加依賴

<!-- 配置文件自動映射 -->

? ? ? ? <dependency>

? ? ? ? ? ? <groupId>org.springframework.boot</groupId>

? ? ? ? ? ? <artifactId>spring-boot-configuration-processor</artifactId>

? ? ? ? ? ? <optional>true</optional>

? ? ? ? </dependency>

但是在spring cloud管理的項目中添加之后,顯示包unknow

unknow

所以才換了在umKeys.properties上進行配置,可以訪問。原因還在思考,了解原因后會過來填充


補充 : 測試的時候設置白名單,設置白名單,設置白名單(重要的事情說三遍)

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容