项目需求:1.对所有用户广播消息。
2.对新版用户推送消息,对所有新版用户添加一个相同TagName。
工具:百度云推送
实现结果:在Android和IOS上都可用,且IOS实现脚标功能。
import net.sf.json.JSONObject;
import com.baidu.yun.channel.auth.ChannelKeyPair;
import com.baidu.yun.channel.client.BaiduChannelClient;
import com.baidu.yun.channel.exception.ChannelClientException;
import com.baidu.yun.channel.exception.ChannelServerException;
import com.baidu.yun.channel.model.PushBroadcastMessageRequest;
import com.baidu.yun.channel.model.PushBroadcastMessageResponse;
import com.baidu.yun.channel.model.PushTagMessageRequest;
import com.baidu.yun.channel.model.PushTagMessageResponse;
import com.baidu.yun.core.log.YunLogEvent;
import com.baidu.yun.core.log.YunLogHandler;
import com.baidu.yun.core.utility.StringUtility;
public class MessageUtil {
public static void pushNewsInfoBroadcastNotification(){
JSONObject androidJson = new JSONObject();
//显示内容,相应的格式可以手机端自己定义
androidJson.put("name", "XX");
JSONObject customContent = new JSONObject();
//进入具体内容需要的信息
customContent.put("id", "");
androidJson.put("custom_content", customContent.toString());
androidPushBroadcastNotification(androidJson.toString());
//ios推送 alert对应的是显示内容,sound对应的是推送声音,badge是脚标数
String iosJson = String.format("{\"aps\":{\"alert\":\"%s\",\"sound\":\"%s\",\"badge\":%s},\"id\":\"%s\"}",
"XX ",ConfigConstants.PUSH_SOUND,1, "");
iosPushBroadcastNotification(iosJson);
}
private static void androidPushBroadcastNotification(String jsonMessage) {
ChannelKeyPair pair = new ChannelKeyPair(ConfigConstants.API_KEY, ConfigConstants.SECRET_KEY);
BaiduChannelClient channelClient = new BaiduChannelClient(pair);
channelClient.setChannelLogHandler(new YunLogHandler() {
@Override
public void onHandle(YunLogEvent event) {
System.out.println(event.getMessage());
}
});
try {
PushBroadcastMessageRequest request = new PushBroadcastMessageRequest();
request.setDeviceType(3); // device_type => 1: web 2: pc 3:android 4:ios 5:wp
request.setDeployStatus(2); // DeployStatus => 1: Developer 2: Production
request.setMessageType(1); //1表示通知类型
request.setMessage(jsonMessage);
PushBroadcastMessageResponse response = channelClient.pushBroadcastMessage(request);
System.out.println("push amount : " + response.getSuccessAmount());
} catch (ChannelClientException e) {
e.printStackTrace();
} catch (ChannelServerException e) {
System.out.println(
String.format("request_id: %d, error_code: %d, error_message: %s" ,
e.getRequestId(), e.getErrorCode(), e.getErrorMsg()));
}
}
private static void iosPushBroadcastNotification(String jsonMessage){
ChannelKeyPair pair = new ChannelKeyPair(ConfigConstants.API_KEY, ConfigConstants.SECRET_KEY);
BaiduChannelClient channelClient = new BaiduChannelClient(pair);
channelClient.setChannelLogHandler(new YunLogHandler() {
@Override
public void onHandle(YunLogEvent event) {
System.out.println(event.getMessage());
}
});
try {
PushBroadcastMessageRequest request = new PushBroadcastMessageRequest();
request.setDeviceType(4); // device_type => 1: web 2: pc 3:android 4:ios 5:wp
request.setMessageType(1);
request.setDeployStatus(2); // DeployStatus => 1: Developer 2: Production
request.setMessage(jsonMessage);
PushBroadcastMessageResponse response = channelClient.pushBroadcastMessage(request);
System.out.println("push amount : " + response.getSuccessAmount());
} catch (ChannelClientException e) {
e.printStackTrace();
} catch (ChannelServerException e) {
System.out.println(
String.format("request_id: %d, error_code: %d, error_message: %s" ,
e.getRequestId(), e.getErrorCode(), e.getErrorMsg()));
}
}
//如果是添加tag,则调用下面的方法
private static void PushNotification(String jsonMessage) {
ChannelKeyPair pair = new ChannelKeyPair(ConfigConstants.API_KEY, ConfigConstants.SECRET_KEY);
BaiduChannelClient channelClient = new BaiduChannelClient(pair);
channelClient.setChannelLogHandler(new YunLogHandler() {
@Override
public void onHandle(YunLogEvent event) {
System.out.println(event.getMessage());
}
});
try {
PushTagMessageRequest tagRequest = new PushTagMessageRequest();
tagRequest.setDeviceType(3); // device_type => 1: web 2: pc 3:android 4:ios 5:wp
tagRequest.setDeployStatus(2); // DeployStatus => 1: Developer 2: Production
tagRequest.setMessageType(1);
tagRequest.setTagName("XX"); //前端需要设置相应的tag
tagRequest.setMessage(jsonMessage);
PushTagMessageResponse response = channelClient.pushTagMessage(tagRequest);
System.out.println("push amount : " + response.getSuccessAmount());
} catch (ChannelClientException e) {
e.printStackTrace();
} catch (ChannelServerException e) {
System.out.println(
String.format("request_id: %d, error_code: %d, error_message: %s" ,
e.getRequestId(), e.getErrorCode(), e.getErrorMsg()));
}
}
}
分享到:
相关推荐
在Android开发中,实现即时通讯(Instant Messaging, IM)功能是一项常见的需求,而基于百度云推送服务可以有效地解决这个问题。本文将围绕“Android之基于百度云推送IM”这一主题,详细解析其关键技术、核心类与...
百度云推送(Baidu Cloud Push)是一项这样的服务,它允许开发者向Android、iOS以及Web应用推送消息,提高用户活跃度和应用黏性。本篇文章将深入探讨如何在Java服务器端实现百度云推送的功能。 首先,我们要了解...
在本项目中,我们主要探讨的是如何利用百度云推送服务构建一个简单的“借书管家”应用。这个实例为初学者提供了一个很好的学习平台,通过它,你可以了解到如何将百度云推送服务集成到Android客户端和服务器端,从而...
本资源包含的是一个关于如何在项目中集成百度云推送服务的代码示例。百度云推送(Baidu Cloud Push)是百度提供的一项免费服务,它可以帮助开发者向用户设备发送消息,提升用户的活跃度和应用的黏性。 首先,集成...
本项目涉及的"百度云推送代码"是百度提供的一个服务,旨在帮助开发者实现Android和iOS应用的消息推送功能。百度云推送(Baidu Cloud Push)是百度开放云平台提供的一项免费的云服务,它能够帮助开发者向移动设备发送...
百度云推送介绍和架构分享
本教程将聚焦于如何使用百度云推送服务来实现在Android上进行消息推送。首先,我们需要理解“消息推送通知栏”这一概念,它是指应用接收到服务器推送的消息后,在用户设备的通知栏显示提醒,用户可以通过点击通知来...
bpush-nodejs 是百度云推送 nodejs sdk,使用简单,部署方便,基于百度云推送 rest api 3.0开发。使用npm install bpush-nodejs --savevar bpush = require('bpush-nodejs'); ...说明SDK采用Promise方式进行回调,...
"百度云推送助力安卓壁纸"这一标题暗示了百度云推送服务在安卓壁纸应用中的作用。它可能涉及到百度云推送如何帮助开发者更有效地分发壁纸更新,提高用户体验,或者如何通过推送服务来优化壁纸应用的运营策略。 ...
本应用是基于百度云推送的一款轻量级聊天工具,包含多个开源项目库,功能简单,界面简洁,,具体情况欢迎访问我的博客主页:http://blog.csdn.net/weidi1989,由于时间仓促,错误与疏忽之处在所难免,希望各位朋友们...
其中,百度云推送作为一款高效、稳定、免费的推送服务,为开发者提供了强大的功能支持。本文将详细介绍Android百度云推送的相关知识点,帮助开发者理解和掌握如何在Android应用中集成并使用这一服务。 1. **百度云...
本文将深入探讨如何利用REST API实现从客户端进行Android推送,特别关注百度云推送这一服务。首先,我们需要了解REST(Representational State Transfer)架构风格,它是一种通过HTTP协议进行数据交互的方式,简洁且...
本项目涉及PhoneGap与百度云推送的集成,以及二维码扫描和自动更新功能的实现。 首先,关于“百度云推送”,它是百度提供的一种针对移动应用的消息推送服务。通过集成百度云推送SDK,开发者可以向Android和iOS设备...
在本项目中,我们主要探讨的是一个基于Android平台的即时通讯(IM)应用程序,它利用了百度云推送服务来实现实时的消息传输。这个压缩包包含的“Android应用源码基于百度云推送的IM项目”提供了完整的源代码,让我们...
**百度云推送Android端详解** 在移动应用开发中,即时通讯功能已经成为不可或缺的一部分,它能够为用户提供实时的消息通知,提高用户粘性和互动性。而百度云推送(Baidu Cloud Push)是百度提供的一种免费的推送...
本项目以"C#实现推送通过的是百度云"为主题,这意味着我们将探讨如何利用C#编程语言与百度云推送服务进行集成,实现消息的发送和接收。 首先,我们要了解百度云推送(Baidu Cloud Push)是百度提供的一种云服务,它...
这份名为“Android应用源码基于百度云推送的聊天工具源码.zip”的压缩包包含了一个Android应用程序的源代码,主要用于实现一个聊天工具,该工具利用了百度云推送服务进行消息的实时传输。这是一个非常适合Android...