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

移动推送

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

简介

MNS消息服务的Topic目前已经支持移动推送,用户发送到Topic里面的Message可以同时被阿里云的移动推送服务推送到移动端。

Endpoint格式

push:{APP_KEY},其中{APP_KEY}是移动端的App在阿里云的移动推送服务的注册ID

前置条件

只需要先开通阿里云的移动推送服务即可,具体开通方式请参考下面文档。

配置移动推送服务

  1. 创建App:在移动推送控制台(https://push.console.aliyun.com/ )的App列表页,点击页面右上角的“创建APP”按钮即可创建一个新的App。CreateApp

  2. 配置App:App创建成功后,强烈建议您去配置app。在APP详情页点击配置应用。

    • Android配置: 勾选Android,并填入PackageName,包名需要与您的代码中的applicationID保持一致。请务必确保您创建的不同应用具有不同的PackageName,阿里云移动推送Android SDK以PackageName作为路由依据,不同应用配置相同包名,可能导致消息错误发送,即与目标应用有相同包名的应用接收到推送消息。
    • iOS配置: 勾选iOS,上传证书并填写证书对应的密码,注意 开发证书和生产证书 不要弄混淆,关于证书的获取与配置,请参见 iOS 推送证书设置指南ConfigApp
  3. 在APP列表点击应用证书按钮即可查看该应用的Appkey和Secret。CheckKey

  4. 在APP列表页下载App端需要集成的SDKDownloadSDK

  5. 配置SDK

  6. 安装配置好的App到终端手机

MNS控制台体验流程

创建移动推送订阅
  1. 在MNS控制台创建Topic
  2. 进入Topic的”订阅详情”
  3. 创建订阅CreateSub
发送消息 (PublishMessage)
  1. 进入Topic列表页面
  2. 向Topic发送消息
  3. 配置移动推送消息的相关属性PublishPush移动推送的具体属性可以参考 这里ConfigPush

JavaSDK订阅代码示例

  1. try {
  2. String topicName = TOPICNAME;
  3. TopicMeta meta = new TopicMeta();
  4. meta.setTopicName(topicName);
  5. CloudTopic topic = client.createTopic(meta);
  6. String pushEndpoint = topic.generatePushEndpoint("XXXX");
  7. SubscriptionMeta subMeta = new SubscriptionMeta();
  8. subMeta.setSubscriptionName(SUBNAME);
  9. subMeta.setNotifyStrategy(SubscriptionMeta.NotifyStrategy.EXPONENTIAL_DECAY_RETRY);
  10. subMeta.setEndpoint(pushEndpoint);
  11. topic.subscribe(subMeta);
  12. RawTopicMessage msg = new RawTopicMessage();
  13. msg.setMessageBody("hello topic");
  14. MessageAttributes messageAttributes = new MessageAttributes();
  15. PushAttributes pushAttributes = new PushAttributes();
  16. pushAttributes.setTarget(PushAttributes.PushTarget.ALL);
  17. pushAttributes.setTargetValue("ALL");
  18. pushAttributes.setDeviceType(PushAttributes.PushDeviceType.ALL);
  19. pushAttributes.setTitle("JavaSDK");
  20. pushAttributes.setBody("Hello From JavaSDK");
  21. pushAttributes.setPushType(PushAttributes.PushType.MESSAGE);
  22. pushAttributes.setParam("AndroidOpenType", "APPLICATION");
  23. messageAttributes.setPushAttributes(pushAttributes);
  24. topic.publishMessage(msg, messageAttributes);
  25. } catch (ServiceException se) {
  26. System.out.println(se.getErrorCode() + se.getRequestId());
  27. System.out.println(se.getMessage());
  28. se.printStackTrace();
  29. } catch (Exception e) {
  30. e.printStackTrace();
  31. }
本文导读目录