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:
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.
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 afhankelijkheden
knooppunt 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.
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.Entryitem: 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.
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.
Voordat u deze functie kunt gaan gebruiken, moet u het pakket in uw project importeren door de volgende regel toe te voegen aan de afhankelijkheden
knooppunt 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 setMessage
, setCustomImage
, 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 ();
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.
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+.