设置和获取推送通知的显示属性

大约 2 分钟

设置和获取推送通知的显示属性

设置推送通知的显示属性

调用 updatePushNickname 方法设置推送通知中显示的昵称,如以下代码示例所示:

// 需要异步处理。
EMClient.getInstance().pushManager().updatePushNickname("pushNickname");

调用 updatePushDisplayStyle 设置推送通知的显示样式,如下代码示例所示:

// 设置为简单样式。
EMPushManager.DisplayStyle displayStyle = EMPushManager.DisplayStyle.SimpleBanner;
// 需要异步处理。
EMClient.getInstance().pushManager().updatePushDisplayStyle(displayStyle);

若要在通知栏中显示消息内容,需要设置通知显示样式 DisplayStyleDisplayStyle 是枚举类型,有如下两种设置:

参数值描述
(默认)SimpleBanner不论 nickname 是否设置,对于推送任何类型的消息,通知栏采用默认显示设置,即推送标题为您有一条新消息,推送内容为请点击查看
MessageSummaryMessageSummary:显示消息内容。设置的昵称只在 DisplayStyleMessageSummary 时生效,在 SimpleBanner 时不生效。

下表以单聊文本消息为例介绍显示属性的设置。

对于群聊,下表中的消息发送方的推送昵称消息发送方的 IM 用户 ID显示为群组 ID

参数设置推送显示图片

- DisplayStyle:(默认)SimpleBanner
- nickname:设置或不设置

- 推送标题:您有一条新消息
- 推送内容:请点击查看
img

- DisplayStyleMessageSummary
- nickname:设置具体值

- 推送标题:您有一条新消息
- 推送内容:消息发送方的推送昵称:消息内容
img

- DisplayStyleMessageSummary
- nickname:不设置

- 推送标题:您有一条新消息
- 推送内容:消息发送方的 IM 用户 ID: 消息内容
img

获取推送通知的显示属性

你可以调用同步方法 EMPushManager#getPushConfigsFromServer 从服务器获取推送通知的显示属性。该方法会阻塞当前线程,请勿在主线程中调用。

try {
    EMPushConfigs pushConfigs = EMClient.getInstance()
        .pushManager()
        .getPushConfigsFromServer();

    // 获取推送显示昵称。
    String nickname = pushConfigs.getDisplayNickname();

    // 获取推送通知的显示样式。
    EMPushManager.DisplayStyle style = pushConfigs.getDisplayStyle();
} catch (HyphenateException e) {
    // 获取推送配置失败。
}

自 4.24.0 版本开始,SDK 新增异步方法 EMPushManager#asyncGetPushConfigsFromServer。该方法不会阻塞当前线程。获取成功时,SDK 通过 onSuccess 回调返回推送配置;获取失败时,通过 onError 回调返回错误码和错误信息。

EMClient.getInstance().pushManager().asyncGetPushConfigsFromServer(
    new EMValueCallBack<EMPushConfigs>() {
        @Override
        public void onSuccess(EMPushConfigs pushConfigs) {
            // 获取推送显示昵称。
            String nickname = pushConfigs.getDisplayNickname();

            // 获取推送通知的显示样式。
            EMPushManager.DisplayStyle style = pushConfigs.getDisplayStyle();
        }

        @Override
        public void onError(int errorCode, String errorMessage) {
            // 获取推送配置失败。
        }
    }
);

同步方法会等待服务器返回结果并可能阻塞当前线程;异步方法会立即返回,并通过回调通知调用结果。建议在主线程中使用异步方法。

上次编辑于: