即时通讯
  • iOS
  • Android : Java
  • macOS
  • Windows
  • Web
  • 小程序
  • Flutter
  • uni-app
  • React Native
  • 产品简介
  • 下载
  • 快速开始
    • 跑通示例源码
    • 实现基本消息收发
  • 用户相关
  • 房间相关
  • 群组相关
  • 消息相关
  • 呼叫邀请
  • 会话管理
  • 离线推送
  • 常见错误码
  • 服务端 API
  • 客户端 API
  • 常见问题

自定义点击通知获取 payload 字段

更新时间:2022-12-07 19:05

功能简介

离线推送发送端通过配置 ZIMPushConfig 的 payload 参数(2.5.0 之前版本为 extendedData 参数)向接收端发送额外信息,接收端需使用 ZPNs SDK 时,通过厂商通道的 extras 里面的 payload 字段获取该信息。

本文档介绍了如何使用 ZPNs SDK 的接口,获取 payload 透传字段。

前提条件

在获取 payload 透传字段之前,请确保:

  • 开发环境满足以下要求:
    • Android Studio 2.1 或以上版本。
    • Android SDK 25、Android SDK Build-Tools 25.0.2、Android SDK Platform-Tools 25.x.x 或以上版本。
    • Android 9.0 或以上版本 Android 设备或模拟器(推荐使用真机)。
  • 已在 ZEGO 控制台 创建项目,获取到了接入 ZIM SDK 服务所需的 AppID、AppSign。ZIM 服务权限不是默认开启的,使用前,请先在 ZEGO 控制台 自助开通 ZIM 服务(详情请参考控制台的 服务配置 - 即时通讯 - 开通服务),若无法开通 ZIM 服务,请联系 ZEGO 技术支持开通。
  • 已集成 ZIM SDK,详情请参考 快速开始 - 实现基本收发消息 的 “2 集成 SDK”。

实现流程

  1. 在 AndroidManifest.xml 文件设置主 Activity 的 exported 属性为 true,并配置 intent-filter。
<activity
    android:name="您的项目的主 Activity 路径"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
  1. 开发者在主 Activity 的 onCreate 或者 onNewIntent 中,通过如下方式获取数据。
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    String payload = getIntent().getExtras().getString("payload");
}