#android #push-notification #huawei-mobile-services #huawei-developers #huawei-push-notification
#Android #push-уведомление #huawei-мобильные сервисы #huawei-разработчики #huawei -push-уведомление
Вопрос:
Я внедрил Huawei Push Kit. onNewToken вызывается после запуска приложения. Я хочу использовать onMessageReceived.
Когда я отправляю клиенту push-уведомление, на Android появляется push-уведомление, но onMessageReceived не запускается.
Я добавил приведенные ниже коды в манифест Android
<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 при получении push-уведомления.
Ответ №1:
Функция onMessageReceived используется только для получения сообщения данных. Таким образом, push-уведомления не запускают onMessageRecevied. Вы можете использовать сообщение данных и создать уведомление самостоятельно. Вы можете получить доступ к образцу кода по этой ссылке.
Ответ №2:
Вы можете получать уведомления из push-уведомлений, когда ваше приложение работает в фоновом режиме или отключено. Для этого вам нужно установить foreground_show как false в теле уведомления.
Если это значение равно true или не задано, ваше сообщение отображается с помощью NC. Если это значение равно false, ваше сообщение передается в ваше приложение вместо отображения с помощью NC.
Для получения более подробной информации, пожалуйста, обратитесь: https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides-V5/android-fgrd-show-0000001050040126-V5
Ответ №3:
Непосредственно отображается сообщение с уведомлением, и поэтому метод onMessageReceived вызываться не будет.
Метод вызывается только при получении сообщения данных. Для получения подробной информации, пожалуйста, обратитесь к получению сообщений данных. Однако сообщение с данными не может попасть в ваше приложение после завершения процесса вашего приложения. Чтобы отобразить сообщение с уведомлением после завершения процесса вашего приложения или получить сообщение с данными через onMessageReceived при запуске вашего приложения, пожалуйста, обратитесь к отображению уведомлений в пользовательском интерфейсе.