跳转到主要内容

Image showing action buttons in iOS

本指南仅适用于推送通知。对于应用内消息,请参阅应用内消息:如何添加点击操作
操作按钮让您可以在单个推送通知中添加多个带标签的操作,因此用户无需先打开您的应用或网站即可响应。根据操作系统和设备,用户通过展开通知(长按、滑动+查看或展开操作)来显示按钮。

添加操作按钮

您可以在模板中配置操作按钮,直接在控制台编写消息时配置,或通过API配置。

控制台和模板设置

创建推送时,打开高级选项 > 操作按钮

Image showing action buttons to be added for iOS and Android

API设置

  • 移动应用:使用buttons参数。传递最多3个包含idtexticon的对象数组。
  • 网页(Chrome):使用web_buttons,传递最多2个包含idtexticonurl的对象。

操作按钮属性

  • 操作ID:特定按钮操作的唯一标识符。点击按钮的ID会传递给您,以便您识别点击了哪个按钮。(例如’accept-button’)
    • 每个按钮必须唯一。
    • 在OSNotification负载中可用,可在SDK通知打开事件处理程序中访问。
    • API:id属性
  • 标签:按钮应向用户显示的文本。(例如’接受’)
    • API:text属性
  • 图标:与按钮标签一起显示的可选图标。并非所有平台和操作系统都支持。详细信息请参阅下方的常见问题。
    • 移动应用必须在其图片资源中包含按钮。详细信息请参阅下方的操作按钮图标。
    • 网站可以使用有效的公开可访问的图标URL。请保持较小大小,因为每次通知显示时都会下载。(例如http://site.com/icon.png
    • API:icon属性
  • 按钮URL:点击通知时打开的URL。传递'do_not_open'可防止打开任何URL。(例如’do_not_open’)
    • 仅限网页
    • API:url属性

操作按钮图标


处理操作按钮点击

当用户点击按钮时,OneSignal会将操作ID传递给您的应用/网站。您可以使用默认行为(打开您的应用/网站)或覆盖它。

默认行为(打开应用/网站,然后处理)

  1. 应用/网站打开(或在网页上获得焦点)。
  2. 您的点击/打开监听器接收带有操作ID的事件。(有关点击监听器的详细信息,请参阅移动SDK参考网页SDK参考。)

防止从操作按钮点击启动应用


支持的平台和限制

平台支持的按钮注意事项
iOS最多4个iOS 15+支持图标。后台处理需要类别。
Android / Amazon / Huawei最多3个Android 7+不支持按钮图标。
网页 – Chrome最多2个支持按钮和图标。支持_osp=do_not_open
网页 – Firefox无按钮_osp=do_not_open仅适用于启动URL。
网页 – Safari无按钮不支持_osp=do_not_open。请提供真实URL。
用户通常需要展开通知才能看到按钮(例如,iOS上长按,某些Android OEM上滑动+查看)。

故障排除

按钮不显示

  • 展开通知(长按、滑动+查看或展开)。
  • 验证您为每个按钮都添加了操作ID和标签。
  • 检查平台限制(例如,Chrome上只能有2个按钮)。

在移动网页上点击按钮不会打开浏览器

如果浏览器在后台或完全关闭,大多数移动浏览器(包括Chrome)不会前置或打开URL,尽管点击事件仍会在service worker中触发。这是故意的浏览器行为,用于防止后台应用程序中断用户。
  • 大多数移动浏览器不会从后台service worker中前置自己。点击仍会在worker中触发,但标签页不会打开。这是故意的。
  • 如果您希望标签页获得焦点而不是打开新标签页,请确保启动URL和按钮URL完全相同(包括尾部斜杠)。

图标不显示

  • iOS必须是15+版本才支持按钮图标。
  • Android 7+不渲染操作按钮图标。
  • 在网页上,确认图标URL是公开可访问的且文件较小(便于快速下载)。

为什么有关闭操作按钮?

默认情况下,Windows 10上的网页推送通知包含关闭按钮。但是,如果您添加了自己的操作按钮,则会删除此关闭按钮。因此,在任一情况下,通知都会保留在屏幕上,直到用户与其交互。这是Google设计的,以给用户与通知交互的机会。
需要帮助?与我们的支持团队聊天或发送邮件至 support@onesignal.com请包含以下信息:
  • 您遇到的问题详情以及复现步骤(如有)
  • 您的 OneSignal 应用 ID
  • 外部 ID 或订阅 ID(如适用)
  • 您在 OneSignal 控制台中测试的消息 URL(如适用)
  • 任何相关的日志或错误信息
我们很乐意为您提供帮助!

I