最近幾個項目都有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
二 : 編寫工具類
?代碼不好貼,直接截圖吧


查看工具類可以知道,我們需要去將需要的字段賦值,根據(jù)項目的具體情況選擇,上述的工具類屬于共同類型,有特殊需求的推送可以參考U-Push API集成文檔
?????使用*.yml文件配置參數(shù)的獲取方式

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

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

? ? ? ?注意 : 這里的工具類參數(shù)和上述的不同
? ? ? ? ③ :需要考慮返回值的調(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,添加依賴無法生效

網(wǎng)上說添加依賴
<!-- 配置文件自動映射 -->
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>org.springframework.boot</groupId>
? ? ? ? ? ? <artifactId>spring-boot-configuration-processor</artifactId>
? ? ? ? ? ? <optional>true</optional>
? ? ? ? </dependency>
但是在spring cloud管理的項目中添加之后,顯示包unknow

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