开发者社区> 问答> 正文

有个应用研发平台EMAS问题请教下,对于通过厂商离线发送的消息,这个消息 id 如何指定?

有个应用研发平台EMAS问题请教下,对于通过厂商离线发送的消息,这个消息 id 如何指定?我的需求是通过 activeNotifications 拿到消息列表时,里面的消息 id 是我指定的。 我测了下在线时通过 AndroidNotificationNotifyId 这个参数可以做到。但是离线后这个参数就不起作用了。另外我大概看了小米和华为的服务端都是支持传 notify_id 的,现在有用到吗? 或者需要做什么别的设置?

展开
收起
真的很搞笑 2024-03-24 08:13:25 37 0
5 条回答
写回答
取消 提交回答
  • 在EMAS移动推送服务中,对于通过厂商离线发送的消息,消息ID通常是由推送服务自动生成的,而不是由开发者直接指定的

    如果您希望通过activeNotifications拿到具有特定消息ID的消息列表,您可能需要采取其他策略,例如:

    1. 自定义数据字段:您可以在发送推送通知时,在推送请求中包含一个自定义的数据字段来存储您想要的消息ID。当应用接收到推送通知并展示给用户时,您可以在应用代码中读取这个自定义字段,并将其与通知关联起来。
    2. 服务端记录:在您的服务端进行推送时,可以将消息ID和推送结果存储在数据库或其他存储系统中。当用户打开通知并启动应用可以通过某种机制(如携带特定的参数或查询服务器)来获取与通知相关联的消息ID。
    3. 客户端处理:在客户端应用中,您可以在接收到推送通知时,生成一个唯一的标识符作为消息ID,并将它与通知一起存储在本地数据库中这样,即使推送服务不提供消息ID,您也可以在本地追踪每个通的状态。

    需要注意的是,由于离线推送的通知首先会被存储在服务器端,待设备上线后再进行推送,因此即使服务端支持指定notify_id,也可能不会直接传递这个自定义的notify_id至客户端。此保您的指定离线消息的消息ID,但您可以通过上述方法来间接实跟踪。

    2024-03-31 17:57:04
    赞同 展开评论 打赏
  • 在阿里云移动推送服务中,对于通过厂商离线发送的消息,您可以通过notify_id来指定消息ID。不过,这个参数在离线情况下是否生效,可能取决于具体的手机厂商推送服务的实现。

    为了确保notify_id在离线状态下也能正确工作,您可以采取以下几个步骤:

    1. 检查厂商推送文档:查阅小米、华为等手机厂商的推送服务文档,确认它们是否支持notify_id参数,并且了解如何正确使用该参数。
    2. 测试验证:进行测试以验证notify_id在离线推送时是否按预期工作。您可以尝试发带有不同notify_id的消息,并通过activeNotifications口获取消息列表,检查返回的消息ID是否符合您指定的notify_id
    3. 联系技术支持:如果上述步骤无法解决问题,建议联送服务的技术支持,询问他们关于离线推送消息ID指定的最佳实践和可能的解决方案。
    4. 版本兼容性:确保您使用的移动推送Android SDK版本以及辅助通道SDK版本是最新的,因为新版本可能修复了旧版本中的问题或引入了新的功能。
    5. 配置检查:再次检查您的推送服务配置,确保所有设置都按照阿移动推送的指南正确配置,没有遗漏或错误的地方。
    6. 第三方检测:如果您的应用需要通过第三方安全检测机构审核,确保您的推送服务配置符合相关要求,以避免审核通过的情况。

    综上所述,您可以尝试上述步骤来解决离线推送消息ID指定的问题。如果问题依然存在,可能需要进一步的技术支持来诊断问题所在。

    2024-03-31 16:44:56
    赞同 展开评论 打赏
  • 某政企事业单位运维工程师,主要从事系统运维及大数据开发工作,多次获得阿里云、华为云、腾讯云征文比赛一二等奖;CTF选手,白帽,全国交通行业网络安全大赛二等奖,全国数信杯数据安全大赛银奖,手握多张EDU、CNVD、CNNVD证书

    针对您提到的问题,在EMAS移动推送中,对于通过厂商离线发送的消息,其消息ID通常是由推送服务自动生成的,并非由开发者直接指定。尽管部分厂商如小米和华为的推送服务可能支持在服务端指定notify_id,但在EMAS移动推送服务中,对于离线消息的处理并不保证完全传递或支持所有厂商特定的自定义参数。

    当应用离线时,消息首先会被存储在服务器端,待设备上线后再进行推送。此时,即使服务端支持指定notify_id,在EMAS移动推送框架下的离线消息处理机制中,可能并不会直接传递这个自定义的notify_id至客户端。

    若要实现您的需求,即在离线状态下也能通过activeNotifications拿到指定的消息ID,建议您查阅EMAS移动推送关于离线消息的相关文档或联系阿里云技术支持,了解是否提供了相应的解决方案或扩展配置来支持这种场景。同时,也可以尝试在厂商通道层面进行更深入的定制化开发,但这通常需要对接厂商的推送服务接口并遵循其规范。

    如何确认厂商推送的辅助弹框是否配置正确 详细信息

    移动研发平台EMAS常见问题 Android问题

    EMAS移动推送名词:AppKey,消息ID,设备ID 消息ID(MessageId)

    2024-03-24 15:18:40
    赞同 展开评论 打赏
  • 走离线通道时这个参数也是有用的,厂商通道的NotifyId用的就是这个。 ,此回答整理自钉群“应用研发平台EMAS开发者交流群”

    2024-03-24 14:57:03
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在消息内容中包含自定义的标识符,然后在activeNotifications回调中通过解析消息内容来获取这个自定义标识符。

    2024-03-24 09:06:45
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
相关文档: 移动研发平台
问答排行榜
最热
最新

相关电子书

更多
五天玩转EMAS Serverless 立即下载
EMAS平台全景介绍 立即下载
低代码开发师(初级)实战教程 立即下载