hz-zhhq-app-service/greenH5modul/.svn/pristine/27/273323e4e6035b44ddd6db681b4...

183 lines
8.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.jysoft.unipush.template;
import com.gexin.fastjson.JSONObject;
import com.gexin.rp.sdk.base.payload.APNPayload;
import com.gexin.rp.sdk.base.payload.MultiMedia;
import com.gexin.rp.sdk.base.payload.VoIPPayload;
import com.gexin.rp.sdk.template.*;
import static com.jysoft.unipush.constant.AppInfo.APPID;
import static com.jysoft.unipush.constant.AppInfo.APPKEY;
/**
* 推送模板
*
* @author zhangwf
* @see
* @since 2019-07-09
*/
public class PushTemplate {
public static void main(String[] args) {
getNotificationTemplate();
// getLinkTemplate();
// getTransmissionTemplate();
// getStartActivityTemplate();
// getRevokeTemplate("XXXX");
}
/**
* 点击通知打开应用模板, 在通知栏显示一条含图标、标题等的通知,用户点击后激活您的应用。
* 通知模板(点击后续行为: 支持打开应用、发送透传内容、打开应用同时接收到透传 这三种行为)
* @return
*/
public static NotificationTemplate getNotificationTemplate() {
NotificationTemplate template = new NotificationTemplate();
// 设置APPID与APPKEY
template.setAppId(APPID);
template.setAppkey(APPKEY);
//设置展示样式
template.setStyle(PushStyle.getStyle0());
template.setTransmissionType(1); // 透传消息设置,收到消息是否立即启动应用: 1为立即启动2则广播等待客户端自启动
template.setTransmissionContent("请输入您要透传的内容");
// template.setSmsInfo(PushSmsInfo.getSmsInfo()); //短信补量推送
// template.setDuration("2019-07-09 11:40:00", "2019-07-09 12:24:00"); // 设置定时展示时间,安卓机型可用
template.setNotifyid(123); // 在消息推送的时候设置notifyid。如果需要覆盖此条消息则下次使用相同的notifyid发一条新的消息。客户端sdk会根据notifyid进行覆盖。
template.setAPNInfo(getAPNPayload()); //ios消息推送
return template;
}
/**
* 点击通知打开(第三方)网页模板, 在通知栏显示一条含图标、标题等的通知,用户点击可打开您指定的网页。
* @return
*/
public static LinkTemplate getLinkTemplate() {
LinkTemplate template = new LinkTemplate();
// 设置APPID与APPKEY
template.setAppId(APPID);
template.setAppkey(APPKEY);
//设置展示样式
template.setStyle(PushStyle.getStyle0());
template.setUrl("http://www.baidu.com"); // 设置打开的网址地址
template.setNotifyid(123); // 在消息推送的时候设置notifyid。如果需要覆盖此条消息则下次使用相同的notifyid发一条新的消息。客户端sdk会根据notifyid进行覆盖。
// template.setSmsInfo(PushSmsInfo.getSmsInfo()); //短信补量推送
// template.setDuration("2019-07-09 11:40:00", "2019-07-09 12:24:00"); // 设置定时展示时间,安卓机型可用
return template;
}
/**
* 透传消息模版,透传消息是指消息传递到客户端只有消息内容,展现形式由客户端自行定义。客户端可自定义通知的展现形式,也可自定义通知到达之后的动作,或者不做任何展现。
* @return
*/
public static TransmissionTemplate getTransmissionTemplate() {
TransmissionTemplate template = new TransmissionTemplate();
// 设置APPID与APPKEY
template.setAppId(APPID);
template.setAppkey(APPKEY);
//透传消息设置1为强制启动应用客户端接收到消息后就会立即启动应用2为等待应用启动
template.setTransmissionType(1);
template.setTransmissionContent("透传内容"); //透传内容
template.setAPNInfo(getAPNPayload()); //ios消息推送
// template.setAPNInfo(getVoIPPayload());
// template.setSmsInfo(PushSmsInfo.getSmsInfo()); //短信补量推送
return template;
}
//点击通知, 打开(自身)应用内任意页面
public static StartActivityTemplate getStartActivityTemplate() {
StartActivityTemplate template = new StartActivityTemplate();
// 设置APPID与APPKEY
template.setAppId(APPID);
template.setAppkey(APPKEY);
//设置展示样式
template.setStyle(PushStyle.getStyle0());
String intent = "intent:#Intent;component=com.yourpackage/.NewsActivity;end";
template.setIntent(intent); //最大长度限制为1000
template.setNotifyid(123); // 在消息推送的时候设置notifyid。如果需要覆盖此条消息则下次使用相同的notifyid发一条新的消息。客户端sdk会根据notifyid进行覆盖。
// template.setSmsInfo(PushSmsInfo.getSmsInfo()); //短信补量推送
// template.setDuration("2019-07-09 11:40:00", "2019-07-09 12:24:00"); // 设置定时展示时间,安卓机型可用
return template;
}
/**
* 消息撤回模版
* @param taskId
* @return
*/
public static RevokeTemplate getRevokeTemplate(String taskId) {
RevokeTemplate template = new RevokeTemplate();
// 设置APPID与APPKEY
template.setAppId(APPID);
template.setAppkey(APPKEY);
template.setOldTaskId(taskId); //指定需要撤回消息对应的taskId
template.setForce(false); // 客户端没有找到对应的taskid是否把对应appid下所有的通知都撤回
return template;
}
private static APNPayload getAPNPayload() {
APNPayload payload = new APNPayload();
//在已有数字基础上加1显示设置为-1时在已有数字上减1显示设置为数字时显示指定数字
// payload.setAutoBadge("+1");
// payload.setContentAvailable(1);
// //ios 12.0 以上可以使用 Dictionary 类型的 sound
// payload.setSound("default");
// payload.setCategory("$由客户端定义");
// payload.addCustomMsg("由客户自定义消息key", "由客户自定义消息value");
//简单模式APNPayload.SimpleMsg
payload.setAlertMsg(new APNPayload.SimpleAlertMsg("hello"));
// payload.setAlertMsg(getDictionaryAlertMsg()); //字典模式使用APNPayload.DictionaryAlertMsg
//设置语音播报类型int类型0.不可用 1.播放body 2.播放自定义文本
// payload.setVoicePlayType(2);
// //设置语音播报内容String类型非必须参数用户自定义播放内容仅在voicePlayMessage=2时生效
// //注:当"定义类型"=2, "定义内容"为空时则忽略不播放
// payload.setVoicePlayMessage("定义内容");
// 添加多媒体资源
// payload.addMultiMedia(new MultiMedia()
// .setResType(MultiMedia.MediaType.pic)
// .setResUrl("资源文件地址")
// .setOnlyWifi(true));
return payload;
}
private static APNPayload.DictionaryAlertMsg getDictionaryAlertMsg() {
APNPayload.DictionaryAlertMsg alertMsg = new APNPayload.DictionaryAlertMsg();
alertMsg.setBody("body1");
alertMsg.setActionLocKey("显示关闭和查看两个按钮的消息");
alertMsg.setLocKey("loc-key");
alertMsg.addLocArg("loc-ary1");
alertMsg.addLocArg("loc-ary2");
alertMsg.setLaunchImage("调用已经在应用程序中绑定的图形文件名");
// iOS8.2以上版本支持
alertMsg.setTitle("通知标题");
alertMsg.setTitleLocKey("自定义通知标题");
alertMsg.addTitleLocArg("自定义通知标题组1");
alertMsg.addTitleLocArg("自定义通知标题组2");
alertMsg.setSubtitle("sub-title");
alertMsg.setSubtitleLocKey("sub-loc-key1");
alertMsg.addSubtitleLocArgs("sub-loc-arg1");
alertMsg.addSubtitleLocArgs("sub-loc-arg2");
return alertMsg;
}
/**
* 需要使用iOS语音传输请使用VoIPPayload代替APNPayload
* @return
*/
private static VoIPPayload getVoIPPayload() {
VoIPPayload payload = new VoIPPayload();
JSONObject jo = new JSONObject();
jo.put("key1", "value1");
payload.setVoIPPayload(jo.toString());
return payload;
}
}