# 集成推送
融云 SDK 从 2.8.10 版本开始支持 HMS 推送,如您使用的是之前版本的 SDK 请先进行升级。
HMS 需要在手机上安装 2.4.0+ 版本的华为移动服务(华为帐号)
# 准备工作 集成适配华为推送之前,请确保已经集成了融云 SDK. 详细可参考 融云推送集成指南
参考 华为推送集成文档 注册和创建应用后, 开通 PUSH 权限, 记录下应用的 AppID、AppSecret.
前往 融云开发者后台,在 服务管理 -> 应用标识 -> Android -> 华为推送设置 栏目中,填写上一步在华为开发者平台申请到的应用的 AppSecret 、AppID 以及填写 推送通知标题
设置 30 分钟后生效
# 导入资源
集成华为推送, 需使用融云提供的华为版本, 否则将出现不兼容问题. 在项目的 build.gradle 文件,allprojects->repositories 里面配置华为推送的 maven 仓库。 在主工程的 build.gradle 文件, 配置编译依赖
# 添加配置
在 AndroidManifest.xml 中配置所需的权限
上述 xml 里 "您的华为 AppKey" 需要用实际申请的应用 ID 替换, “xxx.xxx.xxx”用实际的应用包名替换。
# 启用推送服务
在 SDK init 之前, 配置使用华为推送。
# 混淆脚本
undefined
# 异常处理
可以在自定义的继承自 PushMessageReceiver 的广播接收器中,复写如下事件来捕捉推送异常事件。
当 pushType 为 PushType.HUAWEI, 且错误码为以下几种时,可以调用 RongPushCient.resolveHWPushError() 方法来尝试解决。
HMS 相关错误码说明可参考以下链接:错误码说明
# 通知设置
# 通知显示
接收到推送消息后, 系统会弹出通知, 显示推送消息. # 修改内容样式 # 自定义通知
接收到消息后弹出的通知是系统通知, 所以无法自定义通知
# 通知事件拦截
华为通知栏推送方式下,当用户点击通知时,华为系统会通过隐式调用的方式. 发出 intent , 可通过拦截解析 intent, 获取用户点击行为以及携带的数据。 默认传递的 intent 如下:
intent 会同时携带一些附加数据,比如在调用 RongIMClient.getInstance.sendMessage() 时传递的参数 pushData ; 使用开发者后台的广播推送功能时,自定义的键值对等。
使用默认 intent 跳转, 在主工程中的 AndroidManifest.xml 的 Activity 中配置如下 intent-filter , 点击通知即可跳转到此 Activity.
设置的 intent 即为要隐式跳转的页面设置. 可在融云开发者后台,在 服务管理 -> 应用标识 -> Android -> 华为推送设置 栏目中自定义设置.
要主要 intent 的格式. 必须要以 end 结尾.
自定义 intent 后, 需按照定义 intent , 在 AndroidManifest.xml 的 Activity 中配置如下 intent-filter. 在跳转界面获取并解析 intent 携带数据.
# 角标设置
可在设备上查看是否有相关通知显示的权限, 以及推送角标显示的开关, 打开即可.
在开发者后台 服务管理 -> 应用标识 -> Android -> 华为推送设置 中,设置角标数(badgeAddNum)及桌面图标对应的应用入口 Activity 类(badgeClass),可自定义角标功能。