IM 即时通讯
Android
开发指南

设置多端推送策略

更新时间: 2023/09/22 17:37:38

云信 NIM SDK 支持配置多端推送策略,即当桌面端(包括 Windows,Web,macOS 等)在线时,SDK 支持设置是否需要推送给手机端。

前提条件

实现第三方离线推送

实现方法

  1. 通过调用 observeMultiportPushConfigNotify 方法注册多端推送事件观察者,监听多端推送配置的更新。 示例代码如下:

    private void registerObservers(boolean register) {
        NIMClient.getService(SettingsServiceObserver.class).observeMultiportPushConfigNotify(
                pushConfigObserver, register);
    }
    
    Observer<Boolean> pushConfigObserver = (Observer<Boolean>) aBoolean -> ToastHelper.showToast(
            SettingsActivity.this, "收到multiport push config:" + aBoolean);
    
  2. 通过调用 updateMultiportPushConfig 方法来设置当桌面端在线时,是否需要推送给手机端。

    入参 isOpen 为 true 表示桌面端在线时移动端不需推送。

    示例代码如下:

    NIMClient.getService(SettingsService.class).updateMultiportPushConfig(checkState)
                    .setCallback(new RequestCallback<Void>() {
                        @Override
                        public void onSuccess(Void param) {
                            ToastHelper.showToast(SettingsActivity.this, "设置成功");
                        }
    
                        @Override
                        public void onFailed(int code) {
                            ToastHelper.showToast(SettingsActivity.this, "设置失败,code:" + code);
                            adapter.notifyDataSetChanged();
                        }
    
                        @Override
                        public void onException(Throwable exception) {
                        }
    });
    
  • 设置完成后,可以调用 isMultiportPushOpen 方法获取当前的多端推送配置信息。
  • 如果 SDK 已配置多端登录,且已设置多端推送,则满足推送条件的各个客户端都会收到推送消息。如果不希望多个客户端同时收到推送,请关闭多端登录或者关闭多端推送功能。
此文档是否对你有帮助?
有帮助
去反馈
  • 前提条件
  • 实现方法