1 获取AccessKeyId和AccessKeySecret
>>前往阿里云官网控制台获取
2 获取appKey
>>前往移动推动控制台获取 app列表->应用证书
3 引入SDK依赖
- [backcolor=transparent]<dependency>
- [backcolor=transparent] [backcolor=transparent]<groupId>[backcolor=transparent]com.aliyun[backcolor=transparent]</groupId>
- [backcolor=transparent] [backcolor=transparent]<artifactId>[backcolor=transparent]aliyun-java-sdk-push[backcolor=transparent]</artifactId>
- [backcolor=transparent] [backcolor=transparent]<version>[backcolor=transparent]2.2.4[backcolor=transparent]</version>
- [backcolor=transparent]</dependency>
4 示例代码(替换成您的AccessKeyId、AccessKeySecret、appKey)
- [backcolor=transparent] [backcolor=transparent]IClientProfile[backcolor=transparent] profile [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]DefaultProfile[backcolor=transparent].[backcolor=transparent]getProfile[backcolor=transparent]([backcolor=transparent]"cn-hangzhou"[backcolor=transparent],[backcolor=transparent] accessKeyId[backcolor=transparent],[backcolor=transparent] accessKeySecret[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]DefaultAcsClient[backcolor=transparent] client [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]DefaultAcsClient[backcolor=transparent]([backcolor=transparent]profile[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]SimpleDateFormat[backcolor=transparent] dateFormat [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]SimpleDateFormat[backcolor=transparent]([backcolor=transparent]"MM-dd HH:mm:ss"[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]String[backcolor=transparent] date [backcolor=transparent]=[backcolor=transparent] dateFormat[backcolor=transparent].[backcolor=transparent]format[backcolor=transparent]([backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]Date[backcolor=transparent]());
- [backcolor=transparent] [backcolor=transparent]PushRequest[backcolor=transparent] pushRequest [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]PushRequest[backcolor=transparent]();
- [backcolor=transparent] [backcolor=transparent]// 推送目标
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setAppKey[backcolor=transparent]([backcolor=transparent]appKey[backcolor=transparent]);
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setTarget[backcolor=transparent]([backcolor=transparent]"device"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]//推送目标: device:推送给设备; account:推送给指定帐号,tag:推送给自定义标签; all: 推送给全部
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setTargetValue[backcolor=transparent]([backcolor=transparent]"_YOUR_DEVICE_IDS_HERE"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]//根据Target来设定,如Target=device, 则对应的值为 设备id1,设备id2. 多个值使用逗号分隔.(帐号与设备有一次最多100个的限制)
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setDeviceType[backcolor=transparent]([backcolor=transparent]3[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 设备类型deviceType 取值范围为:0~3. iOS设备: 0; Android设备: 1; 全部: 3, 这是默认值.
- [backcolor=transparent] [backcolor=transparent]// 推送配置
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setType[backcolor=transparent]([backcolor=transparent]1[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 0:表示消息(默认为0), 1:表示通知
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setTitle[backcolor=transparent]([backcolor=transparent]date[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 消息的标题
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setBody[backcolor=transparent]([backcolor=transparent]"PushRequest body"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 消息的内容
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setSummary[backcolor=transparent]([backcolor=transparent]"PushRequest summary"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 通知的摘要
- [backcolor=transparent] [backcolor=transparent]// 推送配置: iOS
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setiOSBadge[backcolor=transparent]([backcolor=transparent]"5"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// iOS应用图标右上角角标
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setiOSMusic[backcolor=transparent]([backcolor=transparent]"default"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// iOS通知声音
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setiOSExtParameters[backcolor=transparent]([backcolor=transparent]"{\"k1\":\"ios\",\"k2\":\"v2\"}"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]//自定义的kv结构,开发者扩展用 针对iOS设备
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setApnsEnv[backcolor=transparent]([backcolor=transparent]"DEV"[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]//pushRequest.setRemind(true); // 推送时设备不在线(既与移动推送的服务端的长连接通道不通),则这条推送会做为通知,通过苹果的APNs通道送达一次(发送通知时,Summary为通知的内容,Message不起作用)。注意:离线消息转通知仅适用于生产环境
- [backcolor=transparent] [backcolor=transparent]// 推送配置: Android
- [backcolor=transparent] [backcolor=transparent]//设置该参数后启动小米托管弹窗功能,此处指定通知点击后跳转的Activity(托管弹窗的前提条件:1. 继承小米辅助通道;2. storeOffline设为true
- [backcolor=transparent] [backcolor=transparent]//pushRequest.setXiaomiActivity("_Your_XiaoMi_Activity_");
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setAndroidOpenType[backcolor=transparent]([backcolor=transparent]"3"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 点击通知后动作,1:打开应用 2: 打开应用Activity 3:打开 url 4 : 无跳转逻辑
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setAndroidOpenUrl[backcolor=transparent]([backcolor=transparent]"http://www.baidu.com"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// Android收到推送后打开对应的url,仅仅当androidOpenType=3有效
- [backcolor=transparent] pushRequest[backcolor=transparent].[backcolor=transparent]setAndroidExtParameters[backcolor=transparent]([backcolor=transparent]"{\"k1\":\"android\",\"k2\":\"v2\"}"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 设定android类型设备通知的扩展属性
- [backcolor=transparent] [backcolor=transparent]// 推送控制
- [backcolor=transparent] [backcolor=transparent]//final Date pushDate = new Date(System.currentTimeMillis() + 30 * 1000); // 30秒之间的时间点, 也可以设置成你指定固定时间
- [backcolor=transparent] [backcolor=transparent]//final String pushTime = ParameterHelper.getISO8601Time(pushDate);
- [backcolor=transparent] [backcolor=transparent]// pushRequest.setPushTime(pushTime); // 延后推送。可选,如果不设置表示立即推送
- [backcolor=transparent] [backcolor=transparent]//pushRequest.setStoreOffline(false); // 离线消息是否保存,若保存, 在推送时候,用户即使不在线,下一次上线则会收到
- [backcolor=transparent] [backcolor=transparent]//final String expireTime = ParameterHelper.getISO8601Time(new Date(System.currentTimeMillis() + 12 * 3600 * 1000)); // 12小时后消息失效, 不会再发送
- [backcolor=transparent] [backcolor=transparent]//pushRequest.setExpireTime(expireTime);
- [backcolor=transparent] [backcolor=transparent]//pushRequest.setBatchNumber("100010"); // 批次编号,用于活动效果统计. 设置成业务可以记录的字符串
- [backcolor=transparent] [backcolor=transparent]PushResponse[backcolor=transparent] pushResponse [backcolor=transparent]=[backcolor=transparent] client[backcolor=transparent].[backcolor=transparent]getAcsResponse[backcolor=transparent]([backcolor=transparent]pushRequest[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]System[backcolor=transparent].[backcolor=transparent]out[backcolor=transparent].[backcolor=transparent]printf[backcolor=transparent]([backcolor=transparent]"RequestId: %s, ResponseId: %s\n"[backcolor=transparent],
- [backcolor=transparent] pushResponse[backcolor=transparent].[backcolor=transparent]getRequestId[backcolor=transparent](),[backcolor=transparent] pushResponse[backcolor=transparent].[backcolor=transparent]getResponseId[backcolor=transparent]());