android HMS推送工具包通知有时作为数据到达,有时作为同一JSON主体的通知到达

b5buobof  于 2023-05-05  发布在  Android
关注(0)|答案(1)|浏览(136)

我在使用HMS push kit发送DATA通知以确保调用onMessageReceived时遇到了一个问题,但问题是对于同一个JSON主体,有时收到的通知作为数据到达,而在收到的消息中被调用,其他时候它作为通知接收并由系统托盘处理,这是我使用的laravel后端代码:

$body = [
            "validate_only" => false,
            "message" => [
                "data" => json_encode($this->message),
                "token" => $this->tokens
            ]
        ];
        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_URL => 'https://push-api.cloud.huawei.com/v1/{some_id}/messages:send',
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => '',
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => 'POST',
            CURLOPT_POSTFIELDS => json_encode($body),
            CURLOPT_HTTPHEADER => array(
                'Content-Type: application/json; charset=UTF-8',
                'Authorization: Bearer ' . $this->access
            )
        ));
        $response = curl_exec($curl);
        curl_close($curl);

我如何确保它总是以数据的形式到达?

prdp8dxp

prdp8dxp1#

服务器发送下行消息时,请参考以下网页和信息。请确保您的消息配置与要求完全相同。同时,请确保您的服务器或团队不向您的测试设备发送推送消息。因为数据消息结构与通知消息不同。数据消息不可能作为通知消息被接收。https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/android-server-dev-0000001050040110

{“validate_only”:false,“message”:{“data”:“'param1':'value1 ','param2':'value2 '}",“token”:[“pushtoken1”,“pushtoken2”] } }
您可以尝试使用华为控制台发送数据报文,如下所示。如果下面的发送工作正常,它证明您的设备接收数据消息非常好.因此,您需要仔细检查推送数据消息的服务器确认。https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/msg-sending-android-0000001136294192

下面的网页用于数据消息开发。https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/android-basic-receivemsg-0000001087370610
如果在上述测试和检查之后您仍然有问题,请尝试捕获一些logcat日志,以便我们可以分析日志以获取更多信息。对于logcats的指南:https://developer.android.com/studio/command-line/logcat

相关问题