Как правило, вы можете только отключать выполнение с помощью трюка:
Установите фазу выполнения на несуществующую фазу (dont-execute
). Обратите внимание, однако, что вам нужно использовать два разных идентификатора выполнения, позволяющих индивидуально отключать обе цели:
<plugin>
<groupId>org.eclipse.xtend</groupId>
<artifactId>xtend-maven-plugin</artifactId>
<version>2.5.3</version>
<executions>
<execution>
<id>xtend-compile</id>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
<execution>
<id>xtend-testCompile</id>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
Субмодуль:
<plugin>
<groupId>org.eclipse.xtend</groupId>
<artifactId>xtend-maven-plugin</artifactId>
<version>2.5.3</version>
<executions>
<execution>
<id>xtend-testCompile</id>
<phase>dont-execute</phase>
</execution>
</executions>
</plugin>
В вашем конкретном случае вы конечно, также может использовать свойство конфигурации skipXtend
в каждом выполнении, чтобы не пропустить выполнение, но только не позволяло плагину ничего делать:
<plugin>
<groupId>org.eclipse.xtend</groupId>
<artifactId>xtend-maven-plugin</artifactId>
<version>2.5.3</version>
<executions>
<execution>
<id>xtend-testCompile</id>
<configuration>
<skipXtend>xtend-testCompile</skipXtend>
</configuration>
</execution>
</executions>
</plugin>
У нас есть два типа полезной нагрузки, в случае отправки-нисходящего потока оба являются необязательными.
data
Этот параметр указывает пользовательские пары ключ-значение полезной нагрузки сообщения.
уведомление
Этот параметр указывает предопределенные видимые пользователем пары ключ-значение полезной нагрузки уведомления.
[ https://firebase.google.com/docs/cloud-messaging/http-server-ref#send-downstream] [Найти Подробнее здесь]
Когда вы в фоновом режиме, FCM будет отображать уведомление в системном трее на основе информации из полезной нагрузки уведомления. Заголовок, сообщение и значок, используемые для уведомления на панели задач, извлекаются из полезных данных уведомления.
{
"notification": {
"title" : "title",
"body" : "body text",
"icon" : "ic_notification",
"click_action" : "OPEN_ACTIVITY_1"
}
}
Вам нужно использовать полезную нагрузку data вместо полезной нагрузки уведомления, ваша проблема будет решена.
Вот пример JSON, который я получаю:
{
"to": "FCM registration ID",
"data": {
"someData" : "This is some data",
"someData2" : "etc"
}
}
Вот мой код Java.
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (remoteMessage == null)
return;
// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
try {
JSONObject json = new
JSONObject(remoteMessage.getData().toString());
handleDataMessage(json);
} catch (Exception e) {
Log.e(TAG, "Exception: " + e.getMessage());
}
}
}
Сообщения с уведомлением и полезной нагрузкой данных:
Сообщение также может содержать как уведомления, так и полезную нагрузку данных. Когда такие сообщения отправляются, они обрабатываются в двух сценариях, в зависимости от состояния приложения (фон / передний план). Для этих сообщений мы можем использовать как уведомления, так и ключи данных.
В фоновом режиме - приложения получают полезную нагрузку уведомления в области уведомлений и обрабатывают полезную нагрузку данных только тогда, когда пользователь нажимает на уведомление.
Когда на переднем плане - приложение получает объект сообщения с обоими полезными нагрузками.