package com.brframework.commonapppush.vo; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; /** * @author xu * @date 2019/10/11 11:42 */ @Data public class UPush { // 必填,应用唯一标识 @JSONField(name = "appkey") private String appKey; // 必填,时间戳,10位或者13位均可,时间戳有效期为10分钟 private String timestamp; // 必填,消息发送类型,其值可以为: //"type":"xx", // unicast-单播 // listcast-列播,要求不超过500个device_token // filecast-文件播,多个device_token可通过文件形式批量发送 // broadcast-广播 // groupcast-组播,按照filter筛选用户群, 请参照filter参数 // customizedcast,通过alias进行推送,包括以下两种case: // - alias: 对单个或者多个alias进行推送 // - file_id: 将alias存放到文件后,根据file_id来推送 private String type; // 当type=unicast时, 必填, 表示指定的单个设备 @JSONField(name = "device_tokens") private String deviceTokens; // 当type=listcast时, 必填, 要求不超过500个, 以英文逗号分隔 // 当type=customizedcast时, 必填 @JSONField(name = "alias_type") private String aliasType; // alias的类型, alias_type可由开发者自定义, 开发者在SDK中 // 调用setAlias(alias, alias_type)时所设置的alias_type private String alias; // 当type=customizedcast时, 选填(此参数和file_id二选一) // 开发者填写自己的alias, 要求不超过500个alias, 多个alias以英文逗号间隔 // 在SDK中调用setAlias(alias, alias_type)时所设置的alias // 当type=filecast时,必填,file内容为多条device_token,以回车符分割 @JSONField(name = "file_id") private String fileId; // 当type=customizedcast时,选填(此参数和alias二选一) // file内容为多条alias,以回车符分隔。注意同一个文件内的alias所对应 // 的alias_type必须和接口参数alias_type一致。 // 使用文件播需要先调用文件上传接口获取file_id,参照"文件上传" // 当type=groupcast时,必填,用户筛选条件,如用户标签、渠道等,参考附录G。 filter的内容长度最大为3000B) private String filter; //发送数据 private Object payload; // 可选,发送策略 private UPushPolicy policy; // 可选,正式/测试模式。默认为true // 测试模式只对“广播”、“组播”类消息生效,其他类型的消息任务(如“文件播”)不会走测试模式 // 测试模式只会将消息发给测试设备。测试设备需要到web上添加。 // Android: 测试设备属于正式设备的一个子集。 @JSONField(name = "production_mode") private String productionMode; // 可选,发送消息描述,建议填写。 private String description; /// 可选,默认为false。当为true时,表示MIUI、EMUI、Flyme系统设备离线转为系统下发 private String mipush; // 可选,mipush值为true时生效,表示走系统通道时打开指定页面acitivity的完整包路径。 @JSONField(name = "mi_activity") private String miActivity; }