信鸽v3推送账号消息

一、创建应用

登录信鸽管理后台,我的应用-新建应用。


image.png

创建完成之后点击查看应用就可以获取到 appId和 secretKey


image.png

二、导入相关依赖

在项目的pom.xml里引入jar包

        <dependency>
            <groupId>com.github.xingePush</groupId>
            <artifactId>xinge</artifactId>
            <version>1.2.0-SNAPSHOT</version>
        </dependency>

      <repositories>
        <repository>
            <id>xingePush</id>
            <url>https://raw.githubusercontent.com/xingePush/maven-repository/snapshot/</url>
        </repository>
      </repositories>

三、创建对象使用账号推送

前提是android已经调试好了,当用户登录时候使用用户账号去信鸽平台注册。这时候才能使用账号推送。

    /**
     * androidApp对象
     */
    private final static XingeApp androidApp = new XingeApp(appId, secretKey);
    /**
     * ios对象
     */
    private final static XingeApp iOSApp = new XingeApp(appId, secretKey);

  /**
     * 信鸽推送
     * 
     * @param title         标题
     * @param content       内容
     * @param accountNos    接收人id集合
     * @param custom        自定义参数键值对
     * @param env           手机类型
     * @param messageType推送方式
     * @return org.json.JSONObject
     */
    public static JSONObject pushSingleAccount(String title, String content, ArrayList<String> accountNos, Map<String, Object> custom,
                                               int env, String pushType) {
        PushAppRequest request = new PushAppRequest();
        //推送方式
        Message message = new Message();
        //自己定义一个枚举、判断使用单推还是群推
        if (pushType.equals(PushType.SOLE)) {
            //这里是使用账号单独推送
            request.setAudience_type(AudienceType.account);
        } else {
           //这里是使用账号群推送
            request.setAudience_type(AudienceType.account_list);
        }
        request.setAccount_list(accountNos);
        request.setMessage_type(MessageType.notify);
        request.setMessage(message);
        request.setPush_id("0");
        JSONObject jsonObject;
        //判断使用android推送还是ios推送
        if (env == XinGeAppType.android.getChName()) {
            request.setPlatform(Platform.android);
            MessageAndroid messageAndroid = new MessageAndroid();
            messageAndroid.setCustom_content(JSON.toJSONString(custom));
            ClickAction clickAction = new ClickAction();
            clickAction.setActivity("这里是后台控制点击之后app跳转的路径");
            messageAndroid.setAction(clickAction);
            message.setTitle(title);
            message.setContent(content);
            message.setAndroid(messageAndroid);
            request.setEnvironment(Environment.dev);
            jsonObject = androidApp.pushApp(request);
        } else{
            request.setPlatform(Platform.ios);
            //ios分测试环境和生产环境我这里就默认测试环境了
            request.setEnvironment(Environment.dev);
            MessageIOS messageIOS = new MessageIOS();
            messageIOS.setCustom(JSON.toJSONString(custom));
            Aps aps = new Aps();
            Alert alert = new Alert();
            alert.setBody(content);
            aps.setAlert(alert);
            aps.setBadge_type(1);
            messageIOS.setAps(aps);
            message.setIos(messageIOS);
            jsonObject = iOSApp.pushApp(request);
        }

        return jsonObject;
    }

      /**  小枚举,类里有很多枚举需要自己定义 */
      public enum XinGeAppType {
          android(1),
          ios(2);
          XinGeAppType(int chName){
              this.chName = chName;
         }
         private int chName;
 
         public int getChName() {
                return chName;
         }

          public void setChName(int chName) {
              this.chName = chName;
          }
}

有需要的朋友可以具体参考信鸽文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容