Firebase voor Android meldingen en app-uitnodigingen

Hoewel het ongelooflijk belangrijk is om uw app te bouwen voor een geweldige ervaring, is interactie met nieuwe en bestaande gebruikers nog belangrijker voor het succes van uw app op de lange termijn. In deze zelfstudie leert u hoe u Firebase gebruikt om Google Cloud Messaging in te schakelen en meldingen naar uw app te verzenden, evenals hoe u gebruikers toestaat uw app te delen met hun contactpersonen die Android- of iOS-apparaten gebruiken. 

Deze zelfstudie gaat ervan uit dat je al een project voor Firebase hebt opgezet en toegang hebt tot de Firebase-console. Bekijk een van onze andere zelfstudies om te leren hoe u aan de slag kunt gaan met Firebase voor Android:

  • Aan de slag met Firebase voor Android

    Voor het maken van een back-end-server is een vaardigheden vereist die de meeste onafhankelijke app-ontwikkelaars niet hebben. Gelukkig is er Firebase, een cloudgebaseerd platform dat ...
    Ashraff Hathibelagal
    Android SDK
  • Een Android Chat-app maken met Firebase

    Met Firebase is het maken van realtime sociale applicaties een wandeling in het park. En het beste is dat je geen enkele regel hoeft te schrijven ...
    Ashraff Hathibelagal
    Android SDK

Firebase-meldingen

Meldingen zijn een van de gemakkelijkste manieren om uw gebruikers op de hoogte te houden van nieuwe gebeurtenissen of functies in uw app en zorgen ervoor dat ze de app opnieuw openen. Met Firebase kunt u meldingen naar alle gebruikers of segmenten van uw gebruikersbestand verzenden, zodat u kunt aanpassen wat uw gebruikers ontvangen en hun interesse wekken.

Meldingen terwijl uw app op de achtergrond staat

Het weergeven van meldingen wanneer uw app op de achtergrond staat, is ongelooflijk eenvoudig, omdat deze automatisch wordt afgehandeld door de Firebase Messaging-bibliotheek. In uw toepassing moet u de bibliotheek opnemen met de volgende regel in de afhankelijkhedenknooppunt van uw build.gradle bestand en installeer de app vervolgens op een apparaat.

compileren 'com.google.firebase: firebase-messaging: 9.8.0'

Ga vervolgens naar je Firebase-console en selecteer de meldingen sectie in het linker navigatiepaneel.

Zodra u zich in het juiste gedeelte bevindt, ziet u een scherm waarin u wordt gevraagd om dit te doen stuur je eerste bericht.

Nadat u op de blauwe knop hebt geklikt, wordt u naar een formulier geleid waarmee u inhoud aan berichten kunt toevoegen en kunt selecteren welke groepen het bericht moeten ontvangen. Met dit formulier kunt u booleaanse voorwaarden opgeven waaraan een apparaat of gebruiker moet voldoen, zoals geografische locatie of andere verzamelde gegevens, om uw melding te ontvangen.

Nadat u het bericht hebt verzonden, verschijnt er een melding op de apparaten van uw gebruiker.

Meldingen op de voorgrond

Een ding om op te letten is dat meldingen niet voor een gebruiker verschijnen als ze al in uw app staan. Als u meldingen in deze situatie wilt ontvangen, moet u een Service dat breidt zich uit FirebaseMessagingService.

public class NotificationService breidt FirebaseMessagingService uit @Override openbare ongeldig maken onMessageReceived (RemoteMessage remoteMessage) super.onMessageReceived (remoteMessage); 

U moet dit ook opnemen Service in uw AndroidManifest.xml het dossier.

    

Nu dat je het algemene raamwerk bij elkaar hebt, is het tijd om te vatten onMessageReceived in uw FirebaseMessagingService klasse. Het belangrijkste doel van deze methode is om de gegevens die zijn neergezonden met de RemoteMessage object en maak een Kennisgeving op basis van wat u ontvangt. 

Er is veel informatie die kan worden doorgegeven met de RemoteMessage. De meeste opties zijn echter alleen beschikbaar als u de Firebase-API voor back-end gebruikt in plaats van de console. Vanuit de Firebase-console kunt u een titel, een berichttekst en aangepaste sleutel / waardeparen instellen.

Loggen van alle beschikbare gegevens van een RemoteMessage kan zo worden gedaan:

voor (Map.Entry item: remoteMessage.getData (). entrySet ()) Log.e ("Test", "Key =" + entry.getKey () + ", Value =" + entry.getValue ());  Log.e ("TutsPlus", "collapsekey:" + remoteMessage.getCollapseKey ()); Log.e ("TutsPlus", "from:" + remoteMessage.getFrom ()); Log.e ("TutsPlus", "bericht-id:" + remoteMessage.getMessageId ()); Log.e ("TutsPlus", "berichttype ::" + remoteMessage.getMessageType ()); Log.e ("TutsPlus", "to:" + remoteMessage.getTo ()); Log.e ("TutsPlus", "verzendtijd:" + remoteMessage.getSentTime ()); Log.e ("TutsPlus", "ttl:" + remoteMessage.getTtl ()); Log.e ("TutsPlus", "title:" + remoteMessage.getNotification (). GetTitle ()); Log.e ("TutsPlus", "body:" + remoteMessage.getNotification (). GetBody ()); Log.e ("TutsPlus", "klikactie:" + remoteMessage.getNotification (). GetClickAction ()); Log.e ("TutsPlus", "color:" + remoteMessage.getNotification (). GetColor ()); Log.e ("TutsPlus", "icon:" + remoteMessage.getNotification (). GetIcon ());

Die op zijn beurt de volgende log-berichten zal produceren.

E / TutsPlus: Key = custom_data_key, Value = some_value E / TutsPlus: collapsekey: com.tutsplus.tutsplusfirebasenotification E / TutsPlus: vanaf: 1044252370931 E / TutsPlus: bericht-ID: 0: 1478812920837872% ba5f8433ba5f8433 E / TutsPlus: berichttype :: null E / TutsPlus: naar: null E / TutsPlus: verzendtijd: 1478812919847 E / TutsPlus: ttl: 0 E / TutsPlus: titel: Aangepaste titel E / TutsPlus: body: Berichttekst E / TutsPlus: klik actie: null E / TutsPlus: kleur: null E / TutsPlus: pictogram: null

Zodra u weet welke informatie beschikbaar is en hoe u hiermee om wilt gaan, kunt u een melding voor uw gebruikers maken en weergeven.

NotificationCompat.Builder builder = new NotificationCompat.Builder (this); builder.setContentTitle (remoteMessage.getNotification () getTitle ().); builder.setSmallIcon (R.mipmap.ic_launcher); builder.setContentText (remoteMessage.getNotification () getBody ().); NotificationManagerCompat.from (this) .notify (0, builder.build ());

En dat is het! U moet nu een Android-app kunnen instellen om meldingen van de Firebase-console te verzenden en ontvangen.

App nodigt uit

Het kan een hele uitdaging zijn om nieuwe gebruikers op je app te krijgen, maar mond-tot-mondreclame is een geweldige manier om de bal aan het rollen te krijgen. Met Firebase kunt u de widget App Invites aan uw applicatie toevoegen, waarmee uw gebruikers uw app via e-mail of sms kunnen delen met andere Android- of iOS-gebruikers.

Lancering van de uitnodigingsprompt

Voordat u deze functie kunt gaan gebruiken, moet u het pakket in uw project importeren door de volgende regel toe te voegen aan de afhankelijkhedenknooppunt van uw build.gradle het dossier.

compileer 'com.google.firebase: firebase-invites: 9.8.0'

Nadat u uw project hebt gesynchroniseerd, kunt u een nieuw maken voornemen de ... gebruiken AppInviteInvitation.IntentBuilder klasse, waarmee een scherm wordt geopend waarmee gebruikers contactpersonen kunnen selecteren die ze voor de app kunnen uitnodigen. Deze builder biedt verschillende opties voor het aanpassen van het scherm voor app-uitnodigingen:

  • setMessage: Hiermee wordt het bericht ingesteld dat gebruikers zien en kunnen via sms of e-mail naar contactpersonen worden verzonden. Dit mag niet langer zijn dan 100 tekens.
  • setCustomImage: Met deze methode kunt u een URI opgeven voor een aangepaste afbeelding die wordt weergegeven in het uitnodigingsscherm en een uitnodiging voor e-mail.
  • setCallToActionText: Met deze methode wordt de tekst voor de installatieknop in e-mails ingesteld. Dit heeft een limiet van 32 tekens.
  • setDeepLink: Hiermee kunt u metagegevens voor uw uitnodiging opgeven, die tijdens de installatie kunnen worden ontvangen voor het uitvoeren van specifieke acties voor uw nieuw uitgenodigde gebruiker.
  • setEmailHtmlContent: Hiermee kunt u overschrijven setMessagesetCustomImage, en setCallToActionText om een ​​aangepaste HTML-geformatteerde e-mail te maken om naar potentiële nieuwe gebruikers te verzenden.
  • setEmailSubject: Vereist als setEmailHtmlContent is gebruikt. Zoals de naam al aangeeft, zal dit het onderwerp zijn voor uw aangepaste e-mail.
  • setOtherPlatformsTargetApplication: Een van de interessantere opties. Met deze methode kunt u de Firebase-clientapp-ID koppelen aan een iOS-versie van uw app, zodat iOS-gebruikers de juiste versie kunnen installeren als deze door een Android-gebruiker wordt gedeeld.

Zodra u uw hebt gemaakt voornemen, je kunt het starten met startActivityForResult om op de hoogte te worden gesteld wanneer de gebruiker is teruggekeerd van het uitnodigen van anderen.

Intent intent = nieuwe AppInviteInvitation.IntentBuilder (getString (R.string.invitation_title)) .setMessage (getString (R.string.invitation_message)) .setCustomImage (Uri.parse (getString (R.string.invitation_custom_image))) .setCallToActionText (getString (R.string.invitation_cta)) .setDeepLink (Uri.parse ("/ link")) .setOtherPlatformsTargetApplication (AppInviteInvitation.IntentBuilder.PlatformMode.PROJECT_PLATFORM_IOS, getString (R.string.ios_app_client_id)) .build ();

Uitnodigingen ontvangen

Nu u andere gebruikers voor uw app kunt uitnodigen, nemen we even de tijd om ons te concentreren op deeplink-opties. Wanneer u uw maakt voornemen, je kunt een toevoegen URI als een diepe link. Wanneer een gebruiker uw uitnodiging op Android ontvangt, kunt u Google Play-services en de AppInvite API gebruiken om dit te onderscheppen URI en voer een aangepaste actie uit, zoals het presenteren van een welkomstscherm, voor uw nieuwe gebruiker. 

boolean autodeeplink = true; mGoogleApiClient = nieuwe GoogleApiClient.Builder (dit) .addApi (AppInvite.API) .enableAutoManage (this, this) .build (); AppInvite.AppInviteApi.getInvitation (mGoogleApiClient, this, autodeeplink) .setResultCallback (new ResultCallback() @Override openbare ongeldig atResult (AppInviteInvitationResult-resultaat) if (result.getStatus (). IsSuccess ()) // Intentie-informatie verkrijgen Intent intent = result.getInvitationIntent (); String deepLink = AppInviteReferral.getDeepLink (intent); String invitationId = AppInviteReferral.getInvitationId (opzet); );

Je zult merken dat we een boolean genaamd autodeeplink. Wanneer dit is ingesteld op waar, het Android-systeem zal automatisch de ontvangen verwerken URI via filters in uw AndroidManifest.xml het dossier. Als het is ingesteld op vals, u kunt de AppInvite API gebruiken om informatie uit de uitnodiging te halen en uw aangepaste actie uit te voeren.

Conclusie

In deze zelfstudie hebt u geleerd hoe u meldingen van Firebase kunt implementeren in uw Android-apps en hoe uw gebruikers uw app eenvoudig kunnen delen met hun contacten. Als u begrijpt wat beschikbaar is in Firebase en de algemene functies implementeert, kunt u al snel apps bouwen die mensen graag gebruiken.

Voor meer informatie over de ontwikkeling van Firebase of Android in het algemeen, bekijk enkele van onze andere cursussen en tutorials hier op Envato Tuts+.

  • Ga aan de slag met het bouwen van een Material Design-app

    In deze video van mijn cursus over het bouwen van een app voor het ontwerpen van materialen, leert u hoe u de gebruikersinterface van een app voor het ontwerpen van materialen maakt. Je leert hoe je ...
    Ashraff Hathibelagal
    Android
  • Android From Scratch: Firebase Crash Reporting

    App-crashes mogen nooit worden genegeerd omdat ze gebruikers vaak wegjagen. Met behulp van een van de vele oplossingen voor crashrapportage die momenteel beschikbaar is, kunt u ...
    Ashraff Hathibelagal
    Android SDK
  • Firebase voor Android: bestandsopslag

    Tijdens de Google I / O-conferentie van 2016 werd Firebase opnieuw geïntroduceerd in de ontwikkelaarsgemeenschap als een belangrijke hulpbron voor snelle back-endondersteuning voor web ...
    Paul Trebilcox-Ruiz
    Android SDK
  • Migreer een Android-app naar Material Design

    Jaren geleden, toen Android nog een ontluikend mobiel besturingssysteem was, was het nogal berucht om zijn lelijke gebruikersinterface. Omdat er geen ontwerp was ...
    Ashraff Hathibelagal
    Android