5

我实现了Huawei Push Kit。onNewToken 在应用启动后调用。我想使用 onMessageReceived。

当我向客户端发送推送通知时,推送通知会出现在 android 上,但不会触发 onMessageReceived。

我将以下代码添加到 Android Manifest

    <service
        android:name=".HmsMessageSrv"
        android:enabled="true" android:exported="false">
        <intent-filter>
            <action android:name="com.huawei.push.action.MESSAGING_EVENT" />
        </intent-filter>
    </service>

    <meta-data
        android:name="push_kit_auto_init_enabled"
        android:value="true" />

我的简单课程是;

public class HmsMessageSrv extends HmsMessageService {

    @Override
    public void onNewToken(String s) {
        super.onNewToken(s);
        Log.i("HmsMessageService", s);
    }

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);
        Log.i("HmsMessageService", "onMessageReceived");
    }
}

收到推送通知时如何触发 onMessageReceived 函数。

4

3 回答 3

4

onMessageReceived函数仅用于接收数据消息。因此,推送通知不会触发 onMessageRecevied。您可以使用数据消息并自己创建通知。您可以从此链接访问示例代码。

于 2020-11-08T09:32:37.083 回答
1

当您的应用程序在后台运行或被杀死时,您可以从推送通知中获取通知消息。为此,您需要在通知正文中将 foreground_show 设置为 false。

如果此值为 true 或未设置,则您的消息由 NC 显示。如果此值为 false,则您的消息将传输到您的应用程序,而不是由 NC 显示。

更多详情请参考:https ://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides-V5/android-fgrd-show-0000001050040126-V5

于 2020-11-11T07:23:34.823 回答
0

直接显示通知消息,因此不会调用 onMessageReceived 方法。

该方法仅在收到数据消息时调用。详情请参阅接收数据信息。但是,在您的应用程序进程被杀死后,数据消息无法到达您的应用程序。要在你的应用进程被杀死后显示通知消息,或者在你的应用运行时通过 onMessageReceived 接收数据消息,请参考UI 上的通知消息显示

于 2020-11-09T03:50:10.397 回答