Pushmeldingen
Uitleg over het inschakelen van pushmeldingen.
Pushmelding instellen op iOS
Er zijn drie stappen om pushmeldingen in te schakelen:
- Pushmeldingen configureren op Apple Developer Account.
- Enable push notifications in xCode.
- Schakel pushmeldingen in de app in met Marketo SDK.
Pushmeldingen configureren op Apple Developer Account
- Aanmelden bij de Apple Developer Lidcentrum.
- Klik op Certificaten, id's en profielen.
- Klik op de map "Certificates->All" onder "iOS, tvOS, watchOS".
- Selecteer "+" in het linkerbovenscherm naast certificaten
- Schakel het selectievakje "Apple Push Notification service SSL (Sandbox & Production)" in en klik op "Doorgaan".
- Selecteer de toepassings-id die u gebruikt om de app te maken.
- CSR maken en uploaden om het pushcertificaat te genereren.
- Certificaat downloaden naar lokale computer en dubbelklikken om te installeren.
- Open "Keychain Access", klik met de rechtermuisknop op het certificaat en exporteer 2 items naar het
.p12
bestand. - Upload dit bestand via Marketo Admin Console om meldingen te configureren.
- App-inrichtingsprofielen bijwerken.
Enable Push Notifications in xCode
Schakel de functie voor pushmeldingen in in het xCode-project.
Enable Push Notifications in App with Marketo SDK
De volgende code toevoegen aan AppDelegate.m
bestand om pushmeldingen naar de apparaten van uw klant te verzenden.
Opmerking - Als u de Adobe Launch extensie, gebruiken ALMarketo
als klassenaam
Importeren na in AppDelegate.h
.
code language-none |
---|
|
code language-none |
---|
|
Toevoegen UNUserNotificationCenterDelegate
tot AppDelegate
zoals hieronder weergegeven.
code language-none |
---|
|
code language-none |
---|
|
Inleiding pushmeldingenservice. Voeg onder code toe om pushberichten in te schakelen.
code language-objectivec |
---|
|
code language-none |
---|
|
Roep deze methode aan om het registratieproces met Apple Push Service in werking te stellen. Als de registratie slaagt, roept de app de gedelegeerde objecten van uw app aan application:didRegisterForRemoteNotificationsWithDeviceToken:
en geeft deze een apparaattoken door.
Als de registratie mislukt, roept de app de gedelegeerde van de app aan application:didFailToRegisterForRemoteNotificationsWithError:
in plaats daarvan.
Registreer pushtoken bij Marketo. Als u pushberichten van Marketo wilt ontvangen, moet u het apparaattoken registreren bij Marketo.
code language-none |
---|
|
code language-none |
---|
|
Het token kan ook niet worden geregistreerd wanneer de gebruiker zich afmeldt.
code language-none |
---|
|
code language-none |
---|
|
Om het duptoken opnieuw te registreren haalt de code uit stap 3 in een methode AppDelegate en roept van de ViewController login methode.
Druk op pushmelding. Als u pushberichten van Marketo wilt ontvangen, moet u het apparaattoken registreren bij Marketo.
code language-none |
---|
|
code language-none |
---|
|
Voeg de volgende methode in AppDelegate toe
Met deze methode kunt u een waarschuwing, geluid of een hogere badge weergeven terwijl de app op de voorgrond staat. U moet completionHandler van uw keus in deze Methode roepen.
code language-none |
---|
|
code language-none |
---|
|
Pas ontvangen pushmelding verwerken in AppDelegate
De methode zal op de afgevaardigde worden geroepen wanneer de gebruiker op het bericht door de toepassing te openen antwoordde, het bericht te ontslaan of een UNNotificationAction te kiezen. De afgevaardigde moet worden geplaatst alvorens de toepassing van applicationDoesFinishLaunching terugkeert:.
code language-none |
---|
|
code language-none |
---|
|
Pushmeldingen bijhouden
Als uw app op de achtergrond wordt uitgevoerd (of niet actief is), ontvangt het apparaat een pushmelding zoals hieronder wordt weergegeven. Marketo houdt bij wanneer de gebruiker op het bericht tikt.
Als het apparaat een pushmelding ontvangt, wordt deze doorgegeven aan application:didReceiveRemoteNotification:
callback op uw afgevaardigde van de App.
Hieronder volgt een Marketo-activiteitenlogboek van Marketo waarin gebeurtenissen voor apps en pushmeldingen worden weergegeven.
Pushmelding instellen op Android
-
Voeg de volgende machtigingen toe in de tag application.
Openen
AndroidManifest.xml
en voeg de volgende machtigingen toe. Uw app moet om de toestemmingen "INTERNET"en "ACCESS_NETWORK_STATE"verzoeken. Als uw toepassing al om deze machtigingen vraagt, slaat u deze stap over.code language-xml <uses‐permission android:name="android.permission.INTERNET"/> <uses‐permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <!‐‐Following permissions are required for push notification.‐‐> <uses-permission android:name="android.permission.GET_ACCOUNTS"/> <!‐‐Keeps the processor from sleeping when a message is received.‐‐> <uses-permission android:name="android.permission.WAKE_LOCK"/> <permission android:name="<PACKAGE_NAME>.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="<PACKAGE_NAME>.permission.C2D_MESSAGE" /> <!-- This app has permission to register and receive data message. --> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
-
FCM instellen met HTTPv1 (Google heeft vervangen XMPP-protocol op 12 juni 2023 en in juni 2024)
-
MME FCM HTTPv1 inschakelen in Marketo-functiebeheer
- Upload Service Account Json-bestand voor de toepassing in MLM.
- U kunt het JSON-bestand voor serviceaccount downloaden van Firebase Console.
- Wacht een uur na het uploaden van het Json-bestand voor serviceaccount in Marketo voordat u pushberichten verzendt.
Android-testapparaten
Voeg Marketo Activity toe in manifestbestand in toepassingstag.
<activity android:name="com.marketo.MarketoActivity" android:configChanges="orientation|screenSize">
<intent-filter android:label="MarketoActivity">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="add_test_device" android:scheme="mkto"/>
</intent-filter/>
</activity/>
Marketo Push Service registreren
-
Als u pushberichten van Marketo wilt ontvangen, moet u de Firebase-berichtenservice toevoegen aan uw
AndroidManifest.xml
. Voeg toe vóór de afsluitende toepassingstag.code language-xml <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <service android:name=".MyFirebaseMessagingService"> <intent-filter> <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> <action android:name="com.google.firebase.MESSAGING_EVENT"/> </intent-filter> </service>
-
Marketo SDK-methoden toevoegen aan het bestand
MyFirebaseMessagingService
als volgtcode language-java import com.marketo.Marketo; public class MyFirebaseMessagingService extends FirebaseMessagingService { @Override public void onNewToken(String s) { super.onNewToken(s); Marketo marketoSdk = Marketo.getInstance(this.getApplicationContext()); marketoSdk.setPushNotificaitonToken(s); // Add your code here... } @Override public void onMessageReceived(RemoteMessage remoteMessage) { Marketo marketoSdk = Marketo.getInstance(this.getApplicationContext()); marketoSdk.showPushNotificaiton(remoteMessage); // Add your code here... } }
Opmerking - Als u de extensie Adobe gebruikt, voegt u het volgende toe:
code language-java import com.marketo.Marketo; public class MyFirebaseMessagingService extends FirebaseMessagingService { @Override public void onNewToken(String token) { super.onNewToken(token); ALMarketo.setPushNotificationToken(token); // Add your code here... } @Override public void onMessageReceived(RemoteMessage remoteMessage) { ALMarketo.showPushNotification(remoteMessage); // Add your code here... } }
OPMERKING: De FCM SDK voegt automatisch alle vereiste machtigingen en de vereiste ontvangerfunctionaliteit toe. Zorg ervoor dat u de volgende verouderde (en mogelijk schadelijke, omdat hierdoor dubbele berichten kunnen ontstaan) elementen uit het manifest van uw app verwijdert als u eerdere versies van SDK hebt gebruikt
<receiver android:name="com.marketo.MarketoBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<!‐‐Receives the actual messages.‐‐>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
<!‐‐Register to enable push notification‐‐>
<action android:name="com.google.android.c2dm.intent.REGISTRATION"/>
<!‐‐‐Replace YOUR_PACKAGE_NAME with your own package name‐‐>
<category android:name="YOUR_PACKAGE_NAME"/>
</intent-filter>
</receiver>
<!‐‐Marketo service to handle push registration and notification‐‐>
<service android:name="com.marketo.MarketoIntentService"/>
-
Initialiseer Marketo Push After saving the configuration above, you must initialize Marketo Push Notification. Maak of open de klasse Application en kopieer/plak de onderstaande code. U kunt uw afzender-id ophalen via de Firebase-console.
code language-java Marketo marketoSdk = Marketo.getInstance(getApplicationContext()); // Enable push notification here. The push notification channel name can by any string marketoSdk.initializeMarketoPush(SENDER_ID,"ChannelName");
Als u Adobe Launch Gebruik de volgende instructies voor extensie
code language-java // Enable push notification here. The push notification channel name can by any string ALMarketo.initializeMarketoPush(SENDER_ID,"ChannelName");
Als u geen SENDER_ID hebt, schakelt u de Google Cloud Messaging Service in door de in deze zelfstudie.
Het token kan ook niet worden geregistreerd wanneer de gebruiker zich afmeldt.
code language-java marketoSdk.uninitializeMarketoPush();
Als u Adobe Launch extensie, gebruik de onderstaande instructie
code language-java ALMarketo.uninitializeMarketoPush();
Nota: Om het duptoken te herregistreren extraheert de code uit stap 3 in een methode AppDelegate en roept van de ViewController login methode.
-
Stel Meldingspictogram in (optioneel) om een aangepast meldingspictogram te configureren. De volgende methode moet dan worden aangeroepen.
code language-java MarketoConfig.Notification config = new MarketoConfig.Notification(); // Optional bitmap for honeycomb and above config.setNotificationLargeIcon(bitmap); // Required icon Resource ID config.setNotificationSmallIcon(R.drawable.notification_small_icon); // Set the configuration //Use the static methods on ALMarketo class when using Adobe Extension Marketo.getInstance(context).setNotificationConfig(config); // Get the configuration set Marketo.getInstance(context).getNotificationConfig();
Problemen oplossen
Het opzetten van mobiele pushberichten omvat vele stappen en de coördinatie van ontwikkelaars en marketeers. Als u problemen ondervindt, kunt u een aantal eenvoudige dingen controleren.
Nadat u ervoor hebt gezorgd dat de eenvoudige dingen correct zijn, dan kunt u dieper in de programmeringsdetails graven.
Het pushbericht wordt niet weergegeven
Controleer eerst of de pushberichten op de handset zijn uitgeschakeld. Mobiele gebruikers kunnen bepalen of ze berichten voor een bepaalde app ontvangen of niet. Vaak zullen ontwikkelaars (en marketers) deze berichten op een bepaald punt tijdens ontwikkeling onbruikbaar maken. Het eerste wat u moet controleren is of de ontvanger pushberichten voor uw app heeft uitgeschakeld.
Ten tweede: is de toepassing al geopend en actief op het apparaat? Wanneer uw app de actieve app op het apparaat is, verschijnen er geen mobiele pushberichten op het scherm. In plaats daarvan worden ze weergegeven in het gebied Lokale meldingen van uw app.
De activiteitenlogboeken in Marketo weergeven
De eerste plaats om te kijken wanneer het volgen van een fout is in de logboeken van de Activiteit van Marketo. U kunt activiteitenlogboeken gebruiken om te verifiëren dat een bericht werd verzonden.
In het activiteitenlogboek, bekijk de activiteitenverslagen voor een persoon die een bericht verondersteld werd te ontvangen. Als het bericht werd verzonden, zal er een verslag aanwezig in het activiteitenlogboek zijn. Als dat niet het geval is, is het probleem waarschijnlijk het gevolg van de configuratie van het iOS-certificaat of de Android API-sleutel in Marketo.
Certificaat of sleutel is ongeldig
Controleer uw configuratie tweemaal om ervoor te zorgen dat u het juiste die certificaat voor Sandbox of Productie hebt wordt geladen. Soms is het beter dat de ontwikkelaar de certificaten (iOS) of toetsen (Android) opnieuw exporteert en deze vervolgens opnieuw laadt in Marketo om te controleren of ze correct zijn.
.p12-bestand ontbreekt een certificaat of sleutel (iOS)
Wanneer u het certificaat exporteert, moet u ervoor zorgen dat u de sleutel exporteert en het certificaat.
Provisioning Profiles Out-of-Date (iOS)
Wanneer u een nieuw apparaat toevoegt, moet u uw inrichtingsprofielen bijwerken en nieuwe certificaten genereren. Zorg ervoor dat uw Xcode-project vervolgens naar de juiste profielen en certificaten verwijst en importeer die certificaten in Marketo.
Kan iOS-certificaat niet uploaden (IOS)
Zorg ervoor dat het wachtwoord dat wordt gebruikt tijdens het exporteren van het certificaat geen spaties bevat. In plaats van deze:
Hello World 123
gebruik dit:
HelloWorld123
Problemen met iOS-certificaten oplossen
Voor sandboxtoepassingen kunt u een certificaat "developer" of "Universal" gebruiken. Maar voor productietoepassingen moet u een geldig "distributie"of "universeel"certificaat uploaden.
Stuiteren/Ongeldige token
Een bestaand registratietoken kan in een aantal scenario's niet langer geldig zijn, zoals:
- Als de clienttoepassing zich niet bij GCM registreert.
- Als de clienttoepassing automatisch niet wordt geregistreerd, wat kan gebeuren als de gebruiker de toepassing verwijdert. Op iOS bijvoorbeeld, als de APNS-feedbackservice het APNS-token als ongeldig heeft gerapporteerd.
- Als de registratietoken verloopt. Google kan bijvoorbeeld besluiten om registratietokens te vernieuwen of de APNS-token is verlopen voor iOS-apparaten.
- Als de client-app is bijgewerkt maar de nieuwe versie niet is geconfigureerd voor het ontvangen van berichten.