Firebase pour Android Notifications et invitations d'applications

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:

  • Commencer avec Firebase pour Android

    La création d'un serveur principal nécessite des compétences qui font défaut à la plupart des développeurs d'applications indépendants. Heureusement, il existe Firebase, une plateforme basée sur le cloud qui…
    Ashraff Hathibelagal
    SDK Android
  • Comment créer une application de chat Android à l'aide de Firebase

    Avec Firebase, la création d'applications sociales en temps réel est une promenade dans le parc. Et la meilleure chose à ce sujet est que vous n'avez pas à écrire une seule ligne de…
    Ashraff Hathibelagal
    SDK Android

Notifications Firebase

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..

Notifications lorsque votre application est en arrière-plan

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épendancesnoeud 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..

Notifications au premier plan

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.Entry entry: 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..

App invite

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..

Lancer l'invite d'invitation

Avant de pouvoir utiliser cette fonctionnalité, vous devez importer le package dans votre projet en ajoutant la ligne suivante à la commande. les dépendancesnoeud 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 setMessagesetCustomImage, 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)

Recevoir des invitations

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.

Conclusion

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.+.

  • Commencer à créer une application de conception de matériaux

    Dans cette vidéo de mon cours sur la création d'une application de conception de matériaux, vous apprendrez à créer l'interface utilisateur d'une application de conception de matériaux. Vous allez apprendre à…
    Ashraff Hathibelagal
    Android
  • Android From Scratch: Rapport d'incident sur Firebase

    Les pannes d'applications ne doivent jamais être ignorées, car elles ont tendance à éloigner les utilisateurs. En utilisant l'une des nombreuses solutions de rapport d'incident disponibles aujourd'hui, vous pouvez…
    Ashraff Hathibelagal
    SDK Android
  • Firebase pour Android: Stockage de fichiers

    Lors de la conférence Google I / O 2016, Firebase a été réintroduit dans la communauté des développeurs en tant que ressource majeure pour la prise en charge rapide du…
    Paul Trebilcox-Ruiz
    SDK Android
  • Migrer une application Android vers la conception matérielle

    Il y a des années, lorsque Android était encore un système d'exploitation mobile en herbe, il était plutôt connu pour son interface utilisateur laide. Parce qu'il n'y avait pas de design…
    Ashraff Hathibelagal
    Android