解决华为推送通知栏点击事件onEvent方法不回调的问题

全世界最坑的就是华为推送的SDK,不管你信不信,反正,我是信了!(我花了大半天的时间集成华为推送,用了不到20分钟,集成了Vivo推送.)

请注意,在确认照官方文档配置无误后,仍然收不到onEvent回调的,请看这里:
这里有两个Receiver(官方文档只有一个,另一个没有给名字,说什么不建议,但不建议,onPushMsg又不会调用,真是狗血!)。
第一个用于接收透传、Token。
第二个用于接收通知栏的点击事件。
为什么这样设计,我看不懂!
(xxx 是包名)

        <receiver android:name="xxx.push.HWPushReceiver"
                  android:permission="xxx.permission.PROCESS_PUSH_MSG">
            <intent-filter>
                <!-- 必须,用于接收token -->
                <action android:name="com.huawei.android.push.intent.REGISTRATION"/>
                <!-- 必须, 用于接收透传消息 -->
                <action android:name="com.huawei.android.push.intent.RECEIVE"/>
                <!-- 必须, 用于接收通知栏消息点击事件 此事件不需要开发者处理,只需注册就可以-->
                <action android:name="com.huawei.intent.action.PUSH_DELAY_NOTIFY"/>
            </intent-filter>
        </receiver>

        <receiver android:name="xxx.push.HWNotifyReceiver">
            <intent-filter>
                <!-- 用于点击通知栏或通知栏上的按钮后触发onEvent回调 -->
                <action android:name="com.huawei.android.push.intent.CLICK"/>
                <!-- 查看push通道是否连接, 不查看则不需要 -->
                <action android:name="com.huawei.intent.action.PUSH_STATE"/>
            </intent-filter>
        </receiver>

HWNotifyReceiver 类的代码

/**
 * @Author Lyf
 * @CreateTime 2019/04/09 11:38
 * @Description 华为的通知栏点击事情
 **/
class HWNotifyReceiver : PushReceiver() {

    override fun onEvent(context: Context?, event: PushReceiver.Event?, extras: Bundle?) {
        super.onEvent(context, event, extras)
        LogUtils.log(PUSH_TAG, "收到华为推送消息=" + GsonUtil.parse(extras))
    }

}

如果还不行,继续看下面的图片,这里的自定义内容,是必须添加的!至少一对键值对!
服务端的推送,则是对应customize参数。

解决华为推送通知栏点击事件onEvent方法不回调的问题

如果觉得有用,请给个赞! 并**一下华为推送的架构设计者,麻烦让他去吃**!