全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
移动推送

Java

更新时间:2017-06-07 13:26:11

1 获取AccessKeyId和AccessKeySecret

>>前往阿里云官网控制台获取

2 获取appKey

>>前往移动推动控制台获取 app列表->应用证书

3 引入SDK依赖

  1. <dependency>
  2. <groupId>com.aliyun</groupId>
  3. <artifactId>aliyun-java-sdk-push</artifactId>
  4. <version>2.2.4</version>
  5. </dependency>

4 示例代码(替换成您的AccessKeyId、AccessKeySecret、appKey)

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