美文网首页Spring-Boot程序员
使用友盟(umeng)完成消息推送

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

作者: 王传贺 | 来源:发表于2019-03-08 11:37 被阅读3次

    最近几个项目都有app端,不可避免的存在消息推送的业务,现在就记录一下java端使用友盟(umeng)第三方完成消息推送功能,需要配合IOS和Android端开发。

    参考友盟官网U-Push API集成文档

    一 : Java端配置友盟参数

            需要Android和IOS相关的key和aliasType (别名,即Android和IOS在友盟上使用的注册信息,比如,aliasType是account,那么友盟会根据账户推送,也可以是groupId,可以根据组织为单位推送,这用就完成了群推送的管理,Android和IOS的别名上限是10个)

            参数的设置有两种方式 :

            ① :在application.yml文件中配置(单推) , 在工具类上调用参数方式为 @ConfigurationProperties(prefix ="umKeys")

             # 友盟key参数

            umKeys:

                # android 相关key

                androidAppkey: 5b601612f43e4861ff0000db

                androidAppMasterSecret: 0dps2sobzavn3kfv3wrnthlbr5ftnbkd

                # ios 相关key

                iosAppkey: 5b6018deb27b0a2c67000255

                iosAppMasterSecret: 4b4huy4ohwedlqrvk4wevqhpiay2zy75

                # 别名

                aliasType: account

                ② : 在umKeys.properties 上配置 (群推), 在工具类上调用参数方式为 @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

    查看工具类可以知道,我们需要去将需要的字段赋值,根据项目的具体情况选择,上述的工具类属于共同类型,有特殊需求的推送可以参考U-Push API集成文档

         使用*.yml文件配置参数的获取方式

        使用*.yml文件配置参数的获取方式

    三 : 工具类(PushClient)源码分析 

    PushClient源码

      你会发现,我们在调用send方法的时候,默认返回的是true,即不考虑返回值的情况下直接使用send方法即可,当我们需要对发送结果进行获取时,需要自己重写一下源码内容

    四 : Java推送

            ① : PushClientpushClient 

                    private PushClientpushClient =new PushClient();

            ② : 无需考虑返回值的调用

     无需考虑返回值的调用

           注意 : 这里的工具类参数和上述的不同

            ③ :需要考虑返回值的调用

    需要考虑返回值的调用

          源码copy出来,进行修改,使其返回参数

    修改源码方法

    五 :补充为什么会使用两种友盟参数设置

                    起初项目环境是常用的Spring MVC ,Spring Boot , Mybatis Plus 架构,使用的是*.yml文件配置参数,可以调用到数据。后面我们改用了自己公司封装的架构,然后是Spring Cloud 基于Spring Boot的微服务架构。导致使用*.yml文件配置参数显示spring boot configuration annotation processor not found in classpath,添加依赖无法生效

    类路径中找不到Spring引导配置注释处理器

    网上说添加依赖

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

            <dependency>

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

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

                <optional>true</optional>

            </dependency>

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

    unknow

    所以才换了在umKeys.properties上进行配置,可以访问。原因还在思考,了解原因后会过来填充

    相关文章

      网友评论

        本文标题:使用友盟(umeng)完成消息推送

        本文链接:https://www.haomeiwen.com/subject/lvwlpqtx.html