app推送以及提示音java,springboot 整合 Jpush 极光推送
发布日期:2021-08-13 07:44:29 浏览次数:6 分类:技术文章

本文共 5812 字,大约阅读时间需要 19 分钟。

产品简介:

JPush 是经过考验的大规模 App 推送平台,每天推送消息数超过 5 亿条。 开发者集成 SDK 后,可以通过调用 API 推送消息。同时,JPush 提供可视化的 web 端控制台发送通知,统计分析推送效果。 JPush 全面支持 Android, iOS, Winphone 三大手机平台。

产品优势:

快速集成SDK,简单易用的控制台和API

提供用户自定义的标签和别名系统,以及极光自己根据数据分析出的分类目标

支持10亿级的高并发访问,多点备份保证系统稳定

有专业的技术支持团队,及时响应客户的需求和问题

这些都是人家自己说的⬆️ 还有一些统计的功能确实不错

实现比较简单

一.账号申请

二.注册 (进入官网之后右上角注册 邮箱即可)

822ad6a21d28c65e59c1f8613d600e0d.png

0ef83a039fbd7d19503bf0e79acfb712.png

三.创建应用 (注册成功后进入 默认没有应用 进行创建)

79d2e47556aaa89a505ab5e8220e9f08.png

四.查看自己应用的appkey 与 Master Secret

一会要配置在代码中类似于账号密码

f8c431ec251d11034bc8ce68eb3e2a83.png

五.项目添加pom文件

cn.jpush.api

jpush-client

3.2.17

cn.jpush.api

jiguang-common

1.1.1

六.编写通用的实现类

package com.zhuning.safetyguard.common;

import cn.jiguang.common.ClientConfig;

import cn.jiguang.common.resp.APIConnectionException;

import cn.jiguang.common.resp.APIRequestException;

import cn.jpush.api.JPushClient;

import cn.jpush.api.push.PushResult;

import cn.jpush.api.push.model.Message;

import cn.jpush.api.push.model.Options;

import cn.jpush.api.push.model.Platform;

import cn.jpush.api.push.model.PushPayload;

import cn.jpush.api.push.model.audience.Audience;

import cn.jpush.api.push.model.notification.AndroidNotification;

import cn.jpush.api.push.model.notification.IosNotification;

import cn.jpush.api.push.model.notification.Notification;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.stereotype.Service;

import java.util.Map;

import static com.zhuning.safetyguard.common.ErrCodeEnum.JPUSH_FAILE;

/**

* @author : Gyf

* create at: 2019-06-06 11:18

* @description: 推送通用Utils

*/

@Service

public class JPushUtils {

//TODO molly123456789@126.com 极光号

private static final String APP_KEY = "a21265452973aafa25c2b386";

private static final String MASTER_SECRET = "fd2fdc64c3eb85a26409b111";

/**

* 极光推送>>Android

*/

public static void jpushAndroid(Map param, String title) {

final Logger logger = LoggerFactory.getLogger(JPushUtils.class);

//创建JPushClient(极光推送的实例)

JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);

//推送的关键,构造一个payload

PushPayload payload = PushPayload.newBuilder()

//指定android平台的用户

.setPlatform(Platform.android())

//你项目中的所有用户

.setAudience(Audience.all())

// .setAudience(Audience.registrationId(param.get("id")))

//registrationId指定用户

.setNotification(Notification.android(param.get("msg"), title, param))

.setOptions(Options.newBuilder().setApnsProduction(false).build())

//这里是指定开发环境,不用设置也没关系

//自定义信息

.setMessage(Message.content(param.get("msg")))

.build();

try {

jpushClient.sendPush(payload);

} catch (APIConnectionException | APIRequestException e) {

logger.info(JPUSH_FAILE.getRetMsg());

}

}

/**

* 极光推送>>ios

*/

public static void jpushIOS(Map param, String title) {

final Logger logger = LoggerFactory.getLogger(JPushUtils.class);

//创建JPushClient

JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);

PushPayload payload = PushPayload.newBuilder()

//ios平台的用户

.setPlatform(Platform.ios())

//所有用

.setAudience(Audience.all())

//.setAudience(Audience.registrationId(parm.get("id")))//registrationId指定用户

.setNotification(Notification.newBuilder()

.addPlatformNotification(IosNotification.newBuilder()

.setAlert(param.get("msg"))

.setBadge(+1)

//这里是设置提示音(更多可以去官网看看)

.setSound("happy")

.addExtras(param)

.build())

.build())

.setOptions(Options.newBuilder().setApnsProduction(false).build())

//自定义信息

.setMessage(Message.newBuilder().setMsgContent(param.get("msg")).addExtras(param).build())

.build();

try {

jpushClient.sendPush(payload);

} catch (Exception e) {

logger.info(JPUSH_FAILE.getRetMsg());

}

}

/**

* 极光推送>>All所有平台

*/

public static void jpushAll(Map parm, String title) {

final Logger logger = LoggerFactory.getLogger(JPushUtils.class);

//创建JPushClient

JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);

//创建option

PushPayload payload = PushPayload.newBuilder()

//所有平台的用户

.setPlatform(Platform.all())

//registrationId指定用户

.setAudience(Audience.registrationId(parm.get("id")))

.setNotification(Notification.newBuilder()

//发送ios

.addPlatformNotification(IosNotification.newBuilder()

//消息体

.setAlert(parm.get("msg"))

.setBadge(+1)

//ios提示音

.setSound("happy")

//附加参数

.addExtras(parm)

.build())

//发送android

.addPlatformNotification(AndroidNotification.newBuilder().setTitle(title)

//附加参数

.addExtras(parm)

//消息体

.setAlert(parm.get("msg"))

.build())

.build())

.setOptions(Options.newBuilder().setApnsProduction(true).build())

//指定开发环境 true为生产模式 false 为测试模式 (android不区分模式,ios区分模式)

.setMessage(Message.newBuilder().setMsgContent(parm.get("msg")).addExtras(parm).build())

//自定义信息

.build();

try {

jpushClient.sendPush(payload);

} catch (APIConnectionException | APIRequestException e) {

logger.info(JPUSH_FAILE.getRetMsg());

}

}

/**

* 极光推送 api v3 自定义推送 没有提示

*/

public static void apiV3Push() {

final Logger logger = LoggerFactory.getLogger(JPushUtils.class);

JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY, null, ClientConfig.getInstance());

// For push, all you need do is to build PushPayload object.

PushPayload payload = buildPushObject_ios_tagAnd_alertWithExtrasAndMessage();

try {

jpushClient.sendPush(payload);

} catch (APIConnectionException | APIRequestException e) {

logger.info(JPUSH_FAILE.getRetMsg());

}

}

private static PushPayload buildPushObject_ios_tagAnd_alertWithExtrasAndMessage() {

return PushPayload.newBuilder()

.setPlatform(Platform.android())

.setAudience(Audience.registrationId("140fe1da9ee8a57e2fd"))

.setNotification(Notification.newBuilder()

.addPlatformNotification(AndroidNotification.newBuilder()

.setAlert("")

.build())

.build())

.setMessage(Message.content("20"))

.setOptions(Options.newBuilder()

.setApnsProduction(false)

.build())

.build();

}

}

我只用了 推送android ios 以及全部推送和一个自定义推送的方法

七.测试 (等待 移动端开发人员集成sdk 获取移动设备key)

1.api测试 java后台发起 推送手机

创建测试接口 根据 设备的类型与设备key进行推送

2.web测试 极光官网推送

点击自己项目进入 然后选择推送

76166ca7ed5a2ca0bc217aa9660bafb6.png

选择推送的设备类型 标题以及推送的内容

823c61df931c88340d88de0a79fb7d2a.png

也可以自定义传送的消息 key-value形式

d26cf5d2a34c0ba88f9bfd872a5445ad.png

根据 设备的key 进行发送

9a76dd9ba376372df5047346679892e6.png

本文地址:https://blog.csdn.net/weixin_42404521/article/details/107512865

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

转载地址:https://blog.csdn.net/weixin_30679649/article/details/115938189 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:php 显示当前年月日时分秒,php 获取当前前后年、月、星期、日、时分秒的时间...
下一篇:linux mysql迁移,Linux 下安装MySQL并迁移备份

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年03月28日 13时23分55秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章