You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Azure Notification Hubs模板为推送通知添加交互按钮

实现方案

要给2FA场景添加通知操作按钮,需要分别按照Android、iOS平台的推送规范调整Azure Notification Hubs模板,同时配合客户端做少量动作注册配置,具体调整如下:

Android端模板调整(适配FCM标准协议)

你原来的模板只包含data静默字段,要显示系统级操作按钮,需要补充notification节点的动作配置,同时传入2FA请求唯一标识做后续校验。
调整后可直接使用的模板字符串(和你原有格式一致,转义后可直接配置到Azure后台):

"{\"data\":{\"message\":\"$(message)\", \"title\": \"$(title)\", \"requestId\":\"$(requestId)\"},\"notification\":{\"title\":\"$(title)\",\"body\":\"$(message)\",\"android\":{\"notification\":{\"actions\":[{\"title\":\"接受\",\"pressAction\":{\"id\":\"2fa_accept\"}},{\"title\":\"拒绝\",\"pressAction\":{\"id\":\"2fa_reject\"}}]}}}}"

如果你的Android端是完全接收data字段后自行构建本地通知,不需要FCM自动渲染通知,可以不用加notification节点,只需要把动作标识、requestId参数放到data结构里,客户端拿到数据后自行构建带按钮的通知即可。

iOS端模板调整(适配APNs协议)

iOS的交互式通知按钮不直接写在推送payload里,需要客户端提前注册通知类别(Category),推送时只需要在aps节点指定对应的类别ID即可显示预先配置好的按钮。
调整后可直接使用的模板字符串:

"{\"aps\":{\"alert\": {\"title\":\"$(title)\",\"body\":\"$(message)\"},\"category\":\"2fa_login_category\",\"sound\":\"default\"},\"requestId\":\"$(requestId)\"}"

你需要在iOS应用启动时,提前向系统注册ID为2fa_login_category的通知类别,给这个类别绑定两个交互动作:ID为2fa_accept的「接受」按钮、ID为2fa_reject的「拒绝」按钮即可,不需要额外修改模板内容。

配套配置要求
  • 发送2FA类推送时,除了原有的title、message占位符参数,必须额外传入requestId参数,值为后端生成的全局唯一、无规律的2FA请求ID(推荐用GUID),用户点击按钮后客户端要把这个ID和操作类型一起回传给后端做合法性校验,避免伪造操作。
  • 客户端需要监听通知按钮点击事件,拿到用户选择的动作ID和requestId后,调用后端的2FA校验接口完成登录确认/拒绝逻辑。
  • 如果你的Android端接入了华为、小米、OPPO等国内厂商自有推送通道,需要把上述模板里的actions配置替换为对应厂商的推送按钮字段格式,上面给出的是谷歌FCM通道的标准配置。
  • 建议给2FA通知设置最高推送优先级,避免被系统电池优化策略拦截、收纳到通知盒子导致用户无法及时看到。

内容的提问来源于stack exchange,提问作者Stefan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 16:34:14