DitoPushPayload class
Campos ricos de um push da Dito, extraídos do data map do FCM.
O uso normal é dentro de um handler do firebase_messaging:
FirebaseMessaging.onMessage.listen((message) {
final payload = DitoPushPayload.fromData(message.data);
if (payload.hasRichContent) {
debugPrint('imagem=${payload.image} botões=${payload.actions.length}');
}
});
O parsing é deliberadamente leniente: actions e custom_data viajam como
strings JSON dentro do data map, e um payload malformado devolve o campo vazio
em vez de lançar — mesma postura dos parsers nativos, porque derrubar o handler
de push por causa de um campo opcional é pior que ignorá-lo.
Constructors
-
DitoPushPayload({String image = '', List<
DitoPushAction> actions = const [], Map<String, String> customData = const {}}) -
const
- DitoPushPayload.fromData(Map? data)
-
Extrai os campos ricos de um data map de push (ex.:
RemoteMessage.data).factory
Properties
-
actions
→ List<
DitoPushAction> -
Botões declarados em
data.actions, no máximo maxActions.final -
customData
→ Map<
String, String> -
data.custom_data, com as variáveis já substituídas pelo backend.final - hashCode → int
-
The hash code for this object.
no setterinherited
- hasRichContent → bool
-
True quando o push traz pelo menos um dos três campos ricos.
no setter
- image → String
-
URL da imagem (
data.image); vazio quando a campanha não tem imagem.final - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Constants
- maxActions → const int
- O contrato garante no máximo 2 botões; o excedente é descartado.