Commit 54dcbd83 by giaogiao

友盟推送

parent e3a4b34c
......@@ -14,14 +14,16 @@ import com.wecloud.im.push.ios.IOSUnicast;
import org.json.JSONArray;
import org.json.JSONObject;
public class Demo {
/**
* 推送工具类
*/
public class PushUtils {
private final String timestamp = null;
private final PushClient client = new PushClient();
private String appkey = null;
private String appMasterSecret = null;
public Demo(String key, String secret) {
public PushUtils(String key, String secret) {
try {
appkey = key;
appMasterSecret = secret;
......@@ -33,10 +35,23 @@ public class Demo {
public static void main(String[] args) {
// TODO set your appkey and master secret here
Demo demo = new Demo("your appkey", "your master secret");
PushUtils demo = new PushUtils("your appkey", "your master secret");
try {
demo.sendAndroidUnicast();
//demo.sendIOSUnicast();
// 安卓单推
String deviceToken = "your device_token";
String unicastText = "Android unicast text";
String unicastTicker = "Android unicast ticker";
String title = "中文的title";
demo.sendAndroidUnicast(deviceToken, unicastText, unicastTicker, title);
// ios 单推
String deviceTokenIOS = "your device_token";
String titleIOS = "今日天气";
String subtitle = "";
String body = "今日可能下雨🌂";
demo.sendIOSUnicast(deviceTokenIOS, titleIOS, subtitle, body);
/* TODO these methods are all available, just fill in some fields and do the test
* demo.sendAndroidCustomizedcastFile();
* demo.sendAndroidBroadcast();
......@@ -45,7 +60,6 @@ public class Demo {
* demo.sendAndroidFilecast();
*
* demo.sendIOSBroadcast();
* demo.sendIOSUnicast();
* demo.sendIOSGroupcast();
* demo.sendIOSCustomizedcast();
* demo.sendIOSFilecast();
......@@ -73,13 +87,25 @@ public class Demo {
client.send(broadcast);
}
public void sendAndroidUnicast() throws Exception {
/**
* 安卓单推
*
* @param deviceToken
* @param unicastText
* @param unicastTicker
* @param title
* @throws Exception
*/
public void sendAndroidUnicast(String deviceToken, String unicastText, String unicastTicker, String title) throws Exception {
AndroidUnicast unicast = new AndroidUnicast(appkey, appMasterSecret);
// TODO Set your device token
unicast.setDeviceToken("your device_token");
unicast.setTicker("Android unicast ticker");
unicast.setTitle("中文的title");
unicast.setText("Android unicast text");
unicast.setDeviceToken(deviceToken);
unicast.setTicker(unicastTicker);
unicast.setTitle(title);
unicast.setText(unicastText);
unicast.goAppAfterOpen();
unicast.setDisplayType(AndroidNotification.DisplayType.NOTIFICATION);
// TODO Set 'production_mode' to 'false' if it's a test device.
......@@ -205,14 +231,26 @@ public class Demo {
client.send(broadcast);
}
public void sendIOSUnicast() throws Exception {
/**
* ios单推
*
* @param deviceToken
* @param title
* @param subtitle
* @param body
* @throws Exception
*/
public void sendIOSUnicast(String deviceToken, String title, String subtitle, String body) throws Exception {
IOSUnicast unicast = new IOSUnicast(appkey, appMasterSecret);
// TODO Set your device token
unicast.setDeviceToken("your device_token");
unicast.setDeviceToken(deviceToken);
//alert值设置为字符串
//unicast.setAlert("IOS 单播测试");
//alert的值设置为字典
unicast.setAlert("今日天气", "", "今日可能下雨🌂");
unicast.setAlert(title, subtitle, body);
unicast.setBadge(0);
unicast.setSound("default");
// TODO set 'production_mode' to 'true' if your app is under production mode
......
package com.wecloud.im.tillo.app_ws.strategy.concrete;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.json.JsonMapper;
......@@ -8,6 +9,7 @@ import com.wecloud.im.entity.ImConversationMembers;
import com.wecloud.im.entity.ImInbox;
import com.wecloud.im.entity.ImMessage;
import com.wecloud.im.entity.ImMessageOnlineSend;
import com.wecloud.im.push.PushUtils;
import com.wecloud.im.service.ImApplicationService;
import com.wecloud.im.service.ImClientService;
import com.wecloud.im.service.ImConversationMembersService;
......@@ -128,6 +130,9 @@ public class ImConcreteReceiveStrategy extends AbstractReceiveStrategy {
imMessageOnlineSend.setContent(receiveModel.getData());
imMessageOnlineSend.setConversationId(toConversationId);
// 友盟推送
PushUtils pushUtils = new PushUtils(imApplication.getUmengKey(), imApplication.getUmengSecret());
// 遍历发送
for (ImConversationMembers conversationMembers : membersList) {
// 排除发送者
......@@ -154,7 +159,6 @@ public class ImConcreteReceiveStrategy extends AbstractReceiveStrategy {
return;
}
// 向接收方推送
ResponseModel<ImMessageOnlineSend> responseModel = new ResponseModel<>();
responseModel.setCmd(ResponseModel.RES);
......@@ -164,6 +168,38 @@ public class ImConcreteReceiveStrategy extends AbstractReceiveStrategy {
responseModel.setData(imMessageOnlineSend);
responseModel.setReqId(null);
writeDataService.write(responseModel, appKey, imClientReceiver.getClientId());
// 系统推送
// 设备不想收到推送提醒, 1想, 0不想
if (imClientReceiver.getValid() != 0 && imClientReceiver.getDeviceToken() != null) {
// 设备类型1:ios; 2:android
if (imClientReceiver.getDeviceType() == 1) {
// ios 单推
String deviceTokenIOS = imClientReceiver.getDeviceToken();
String titleIOS = "收到新消息";
String subtitle = "";
String body = "点击查看";
try {
pushUtils.sendIOSUnicast(deviceTokenIOS, titleIOS, subtitle, body);
} catch (Exception e) {
e.printStackTrace();
}
} else {
// 安卓单推
String deviceToken = imClientReceiver.getDeviceToken();
String unicastText = "Android unicast text";
String unicastTicker = "点击查看";
String title = "收到新消息";
try {
pushUtils.sendAndroidUnicast(deviceToken, unicastText, unicastTicker, title);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
// 响应发送方消息id等信息
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment