Si la création de votre application pour fournir une expérience de qualité est extrêmement importante, il est encore plus important de s’engager avec des utilisateurs nouveaux et existants pour le succès à long terme de votre application. Dans ce didacticiel, vous apprendrez à utiliser Firebase pour activer Google Cloud Messaging et envoyer des notifications à votre application, ainsi qu'à permettre aux utilisateurs de partager votre application avec leurs contacts utilisant des appareils Android ou iOS..
Ce tutoriel supposera que vous avez déjà configuré un projet pour Firebase et que vous avez accès à la console Firebase. Pour apprendre à démarrer avec Firebase pour Android, consultez l'un de nos autres didacticiels:
Les notifications sont l’un des moyens les plus simples d’informer vos utilisateurs des nouveaux événements ou fonctionnalités de votre application et de les amener à ouvrir à nouveau l’application. À l'aide de Firebase, vous pouvez envoyer des notifications à tous les utilisateurs ou à des segments de votre base d'utilisateurs, ce qui vous permet de personnaliser ce que vos utilisateurs reçoivent et de susciter leur intérêt..
L'affichage de notifications lorsque votre application est en arrière-plan est extrêmement facile, car il est géré automatiquement par la bibliothèque Firebase Messaging. Dans votre application, vous devrez inclure la bibliothèque avec la ligne suivante dans le champ les dépendances
noeud de votre build.gradle fichier, puis installez l'application sur un périphérique.
compiler 'com.google.firebase: firebase-messaging: 9.8.0'
Ensuite, vous devrez accéder à votre console Firebase et sélectionner le Les notifications section dans le panneau de navigation de gauche.
Une fois dans la bonne section, vous devriez voir un écran vous invitant à envoyer votre premier message.
Une fois que vous avez cliqué sur le bouton bleu, vous serez redirigé vers un formulaire qui vous permettra d’ajouter du contenu aux messages et de sélectionner les groupes qui recevront le message. En utilisant ce formulaire, vous pouvez spécifier des conditions booléennes qu'un appareil ou un utilisateur doit respecter, telles que la localisation géographique ou toute autre donnée collectée, afin de recevoir votre notification..
Une fois que vous avez envoyé le message, une notification doit apparaître sur les appareils de votre utilisateur..
Une chose à noter est que les notifications ne seront pas affichées pour un utilisateur s'il est déjà dans votre application. Pour recevoir des notifications dans cette situation, vous devez mettre en œuvre un Un service
qui s'étend FirebaseMessagingService
.
Classe publique NotificationService: extension FirebaseMessagingService @Override public void onMessageReceived (RemoteMessage remoteMessage) super.onMessageReceived (remoteMessage);
Vous devrez également inclure cette Un service
dans ton AndroidManifest.xml fichier.
Maintenant que vous avez le cadre général ensemble, il est temps d'étoffer onMessageReceived
dans ton FirebaseMessagingService
classe. Le but principal de cette méthode est d’enlever les données envoyées avec le RemoteMessage
objet et créer un Notification
en fonction de ce que vous recevez.
Il y a beaucoup d'informations qui peuvent être transmises avec le RemoteMessage
. Cependant, la plupart des options ne sont disponibles que si vous utilisez l'API principale de Firebase, plutôt que la console. À partir de la console Firebase, vous pouvez définir un titre, un corps de message et des paires clé / valeur personnalisées..
Consignation de toutes les données disponibles d'un RemoteMessage
peut être fait comme ça:
pour (Map.Entryentry: remoteMessage.getData (). entrySet ()) Log.e ("Test", "Key =" + entry.getKey () + ", Value =" + entry.getValue ()); Log.e ("TutsPlus", "collapsekey:" + remoteMessage.getCollapseKey ()); Log.e ("TutsPlus", "à partir de:" + remoteMessage.getFrom ()); Log.e ("TutsPlus", "ID de message:" + remoteMessage.getMessageId ()); Log.e ("TutsPlus", "type de message ::" + remoteMessage.getMessageType ()); Log.e ("TutsPlus", "to:" + remoteMessage.getTo ()); Log.e ("TutsPlus", "send time:" + remoteMessage.getSentTime ()); Log.e ("TutsPlus", "ttl:" + remoteMessage.getTtl ()); Log.e ("TutsPlus", "titre:" + remoteMessage.getNotification (). GetTitle ()); Log.e ("TutsPlus", "body:" + remoteMessage.getNotification (). GetBody ()); Log.e ("TutsPlus", "action du clic:" + remoteMessage.getNotification (). GetClickAction ()); Log.e ("TutsPlus", "color:" + remoteMessage.getNotification (). GetColor ()); Log.e ("TutsPlus", "icon:" + remoteMessage.getNotification (). GetIcon ());
Qui, à son tour, produira les messages de journal suivants.
E / TutsPlus: Clé = custom_data_key, Valeur = une_valeur E / TutsPlus: clé du clavier: com.tutsplus.tutsplusfirebasenotification E / TutsPlus: à partir de: 1044252370931 E / TutsPlus: identifiant du message: 0: 147881298837872 E / TutsPlus: to: null E / TutsPlus: heure d'envoi: 1478812919847 E / TutsPlus: ttl: 0 E / TutsPlus: titre: titre personnalisé E / TutsPlus: corps: texte du message E / TutsPlus: action de clic: null E / TutsPlus: couleur: null E / TutsPlus: icône: null
Une fois que vous savez quelles informations sont disponibles et comment vous souhaitez les gérer, vous pouvez créer et afficher une notification pour vos utilisateurs..
Générateur NotificationCompat.Builder = new NotificationCompat.Builder (this); builder.setContentTitle (remoteMessage.getNotification (). getTitle ()); builder.setSmallIcon (R.mipmap.ic_launcher); constructeur.setContentText (remoteMessage.getNotification (). getBody ()); NotificationManagerCompat.from (this) .notify (0, builder.build ());
Et c'est tout! Vous devriez maintenant pouvoir configurer une application Android pour envoyer et recevoir des notifications à partir de la console Firebase..
Obtenir de nouveaux utilisateurs sur votre application peut être un défi de taille, mais le bouche à oreille est un excellent moyen de lancer le processus. À l'aide de Firebase, vous pouvez ajouter le widget Invitations d'applications à votre application, ce qui permettra à vos utilisateurs de partager votre application par courrier électronique ou SMS avec d'autres utilisateurs Android ou iOS..
Avant de pouvoir utiliser cette fonctionnalité, vous devez importer le package dans votre projet en ajoutant la ligne suivante à la commande. les dépendances
noeud de votre build.gradle fichier.
compiler 'com.google.firebase: firebase-invite: 9.8.0'
Une fois votre projet synchronisé, vous pourrez créer un nouveau Intention
en utilisant le AppInviteInvitation.IntentBuilder
classe, qui lancera un écran permettant aux utilisateurs de sélectionner les contacts à inviter sur l’application. Ce générateur fournit diverses options pour personnaliser l'écran d'invitation d'application:
setMessage
: Cela définira le message que les utilisateurs verront et pourront envoyer aux contacts par SMS ou par courrier électronique. Cela ne peut pas dépasser 100 caractères.setCustomImage
: En utilisant cette méthode, vous pouvez fournir un URI à une image personnalisée qui apparaîtra dans l'écran d'invitation et un e-mail d'invitation.setCallToActionText
: Cette méthode définit le texte du bouton d’installation dans les courriels. Cela a une limite de 32 caractères.setDeepLink
: Vous permet de fournir des métadonnées pour votre invitation, qui peuvent être reçues lors de l'installation pour effectuer des actions spécifiques pour votre nouvel utilisateur invité.setEmailHtmlContent
: Vous permet de remplacer setMessage
, setCustomImage
, et setCallToActionText
créer un courrier électronique au format HTML personnalisé à envoyer à de nouveaux utilisateurs potentiels.setEmailSubject
: Obligatoire si setEmailHtmlContent
est utilisé. Comme son nom l'indique, cela définira le sujet de votre courrier électronique personnalisé..setOtherPlatformsTargetApplication
: L'une des options les plus intéressantes, cette méthode vous permet d'associer l'ID d'application client Firebase pour une version iOS de votre application, permettant ainsi aux utilisateurs d'iOS d'installer la version appropriée si elle est partagée par un utilisateur Android..Une fois que vous avez créé votre Intention
, vous pouvez le lancer avec startActivityForResult
être averti lorsque l'utilisateur revient d'inviter d'autres personnes.
Intention Intent = new AppInviteInvitation.IntentBuilder (getString (titre.invitation_R.string)). (R.string.invitation_cta)) .setDeepLink (Uri.parse ("/ link")) .setOtherPlatformsTargetApplication (AppInviteInvitation.IntentBuilder.PlatformMode.PROJECT_PLATFORM_IOS, getString (R.string.ios_application)
Maintenant que vous êtes en mesure d'inviter d'autres utilisateurs dans votre application, prenons un moment pour nous concentrer sur les options de liaison en profondeur. Lorsque vous créez votre Intention
, vous pouvez ajouter un URI
comme un lien profond. Lorsqu'un utilisateur reçoit votre invitation sur Android, vous pouvez utiliser les services Google Play et l'API AppInvite pour l'intercepter. URI
et effectuez une action personnalisée, telle que la présentation d'un écran de bienvenue, pour votre nouvel utilisateur.
boolean autodeeplink = true; mGoogleApiClient = new GoogleApiClient.Builder (this) .addApi (AppInvite.API) .enableAutoManage (this, this) .build (); AppInvite.AppInviteApi.getInvitation (mGoogleApiClient, this, autodeeplink) .setResultCallback (nouveau ResultCallback() @Override public void onResult (résultat AppInviteInvitationResult) if (result.getStatus (). IsSuccess ()) // Obtention d'informations sur l'intention Intent intention = result.getInvitationIntent (); String deepLink = AppInviteReferral.getDeepLink (intention); String invitationId = AppInviteReferral.getInvitationId (intention); );
Vous remarquerez que nous avons créé un booléen
nommé lien automatique
. Lorsque ceci est réglé sur vrai
, le système Android gérera automatiquement la réception URI
à travers des filtres dans votre AndroidManifest.xml fichier. S'il est réglé sur faux
, vous pouvez utiliser l'API AppInvite pour extraire des informations de l'invitation et effectuer votre action personnalisée.
Dans ce didacticiel, vous avez appris à implémenter les notifications de Firebase dans vos applications Android et à permettre à vos utilisateurs de partager facilement votre application avec leurs contacts. Comprendre ce qui est disponible dans Firebase et comment implémenter les fonctionnalités générales vous aidera à créer rapidement des applications que les gens aiment utiliser..
Pour en savoir plus sur le développement de Firebase ou d'Android en général, consultez certains de nos autres cours et tutoriels ici sur Envato Tuts.+.