app推送以及提示音java,springboot 整合 Jpush 极光推送
產品簡介:
JPush 是經過考驗的大規模 App 推送平臺,每天推送消息數超過 5 億條。 開發者集成 SDK 后,可以通過調用 API 推送消息。同時,JPush 提供可視化的 web 端控制臺發送通知,統計分析推送效果。 JPush 全面支持 Android, iOS, Winphone 三大手機平臺。
產品優勢:
快速集成SDK,簡單易用的控制臺和API
提供用戶自定義的標簽和別名系統,以及極光自己根據數據分析出的分類目標
支持10億級的高并發訪問,多點備份保證系統穩定
有專業的技術支持團隊,及時響應客戶的需求和問題
這些都是人家自己說的?? 還有一些統計的功能確實不錯
實現比較簡單
一.賬號申請
二.注冊 (進入官網之后右上角注冊 郵箱即可)
三.創建應用 (注冊成功后進入 默認沒有應用 進行創建)
四.查看自己應用的appkey 與 Master Secret
一會要配置在代碼中類似于賬號密碼
五.項目添加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測試 極光官網推送
點擊自己項目進入 然后選擇推送
選擇推送的設備類型 標題以及推送的內容
也可以自定義傳送的消息 key-value形式
根據 設備的key 進行發送
本文地址:https://blog.csdn.net/weixin_42404521/article/details/107512865
如您對本文有疑問或者有任何想說的,請點擊進行留言回復,萬千網友為您解惑!
總結
以上是生活随笔為你收集整理的app推送以及提示音java,springboot 整合 Jpush 极光推送的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【循环恶搞代码】
- 下一篇: java基础集合类——LinkedLis