Personnalisation de Xamarin Android
Suivi des achats In-App
Anchor link toPour suivre les achats In-App, vous devez appeler la méthode SendInappPurchase
de la classe PushNotificationsManager
lorsqu’un utilisateur achète un produit :
public virtual void SendInappPurchase (string sku, BigDecimal price, string currency);
sku
– l’ID du produit achetéprice
– le prix du produitcurrency
– la devise (ex : « USD »)
Exemple :
PushNotificationsManager.Instance.SendInappPurchase("com.your.app.Marketing", BigDecimal.ValueOf(149.95), "USD");
Liens profonds
Anchor link toAjoutez l’attribut IntentFilter à votre classe d’activité qui gérera le lien profond comme suit :
using Android.Content;using Android.Content.PM;
[Activity(Label = "PromoActivity", ConfigurationChanges = ConfigChanges.Orientation, ScreenOrientation = ScreenOrientation.Portrait)][IntentFilter(new[] { Intent.ActionView }, Categories = new[] { Intent.CategoryDefault, Intent.CategoryBrowsable }, DataScheme = "com.pushwoosh", DataHost = "promotion")]class PromoActivity : Activity
Dans l’exemple ci-dessus, le lien profond ouvre PromoActivity. L’implémentation de base ci-dessous affiche une alerte avec la valeur de l’ID de la promotion par souci de simplicité.
using System;using Android.App;using Android.OS;using Android.Text;using Android.Widget;using Android.Content;using Android.Content.PM;
namespace PushwooshSample{ [Activity(Label = "PromoActivity", ConfigurationChanges = ConfigChanges.Orientation, ScreenOrientation = ScreenOrientation.Portrait)] [IntentFilter(new[] { Intent.ActionView }, Categories = new[] { Intent.CategoryDefault, Intent.CategoryBrowsable }, DataScheme = "com.pushwoosh", DataHost = "promotion")] public class PromoActivity : Activity { protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Title = "Deep link activity";
Intent intent = Intent; String action = intent.Action; var data = intent.Data; if (TextUtils.Equals(action, Intent.ActionView)) { OpenUrl(data); } }
void OpenUrl(Android.Net.Uri uri) { String promoId = uri.GetQueryParameter("id"); Toast.MakeText(ApplicationContext, promoId, ToastLength.Long).Show(); } }}
Utilisation des badges sur Android
Anchor link toPushwoosh prend en charge la définition du nombre de badges sur le raccourci de l’icône de l’application pour les lanceurs Android suivants : Sony, Samsung, LG, HTC, ASUS, ADW, APEX, NOVA, HUAWEI, ZUK, OPPO.
Exemple :
using Pushwoosh.Badge;
PushwooshBadge.BadgeNumber = badgeInt;
Ouverture d’une activité personnalisée
Anchor link toSi vous souhaitez démarrer une activité particulière en réponse aux notifications Push, ajoutez l’IntentFilter suivant à cette activité :
[Activity][IntentFilter(new[] { "${applicationId}.MESSAGE" }, Categories = new[] { Intent.CategoryDefault })]public class MyActivity : Activity
Contrôle du niveau de journalisation
Anchor link toPour faciliter le débogage et l’intégration, le SDK affiche par défaut toutes les requêtes dans la console. Lorsque vous êtes prêt pour la version de production, ajoutez la métadonnée « PW_LOG_LEVEL » avec la valeur « ERROR » au fichier AndroidManifest.xml. De cette manière, seules les informations sur les erreurs seront affichées dans la console. Les autres options possibles sont les suivantes :
NONE - Aucun journal du SDK ERROR - Affiche uniquement les erreurs dans la console WARN - Affiche les avertissements et les erreurs INFO - Affiche les messages d’information DEBUG - Même les informations de débogage sont maintenant affichées NOISE - Tout ce que le SDK peut imprimer
<meta-data android:name="com.pushwoosh.log_level" android:value="ERROR" />
Utilisation de ProGuard
Anchor link toAjoutez les options suivantes si vous utilisez ProGuard :
-keep class com.pushwoosh.** { *; }-dontwarn com.pushwoosh.**
Personnalisation du comportement d’ouverture des notifications
Anchor link toSi vous avez besoin de sélectionner l’activité à afficher suite à une notification Push, vous pouvez créer une NotificationServiceExtension personnalisée et inclure le nom de classe complet de votre NotificationServiceExtension dans les métadonnées sous la valeur « com.pushwoosh.notification_service_extension ».
using System;using Android.App;using Android.Content;using Android.Runtime;using Pushwoosh.Notification;
[assembly: MetaData("com.pushwoosh.notification_service_extension", Value = "com.your.package.YourNotificationServiceExtension")]namespace YourNamespace{ [Register("com/your/package/YourNotificationServiceExtension")] public class YourNotificationServiceExtension : NotificationServiceExtension { protected override void StartActivityForPushMessage(PushMessage message) { // base.StartActivityForPushMessage(message) starts default launcher activity // or activity marked with ${applicationId}.MESSAGE action. // Simply do not call it to override this behaviour.
// start your activity instead: Intent launchIntent = new Intent(ApplicationContext, typeof(YourActivity)); launchIntent.SetFlags(ActivityFlags.NewTask);
ApplicationContext.StartActivity(launchIntent); } }}
Personnalisation des notifications Push
Anchor link toPour personnaliser l’affichage des notifications Push, vous devez créer une Factory personnalisée. Vous pouvez créer une NotificationFactory personnalisée et inclure le nom de classe complet de votre NotificationFactory dans les métadonnées sous la valeur « com.pushwoosh.notification_factory ».
<meta-data android:name="com.pushwoosh.notification_factory" android:value="com.your.package.YourNotificationFactory" />
using System;using Android.App;using Android.Runtime;using Pushwoosh.Notification;
[assembly: MetaData("com.pushwoosh.notification_factory", Value = "com.your.package.YourAppNotificationFactory")]namespace PushwooshSample{ [Register("com/your/package/YourAppNotificationFactory")] public class YourAppNotificationFactory : PushwooshNotificationFactory { public override Notification OnGenerateNotification(PushMessage pushData) { // TODO: generate and return custom notification
return base.OnGenerateNotification(pushData); } }}
URL de point de terminaison privé
Anchor link toPushwoosh fournit des points de terminaison privés pour les clients ayant un abonnement Plan Personnalisé. Pour configurer un point de terminaison privé pour le SDK, vous devez ajouter ce qui suit à votre fichier AndroidManifest.xml :
<meta-data android:name="com.pushwoosh.base_url" android:value="PUSHWOOSH_PRIVATE_ENDPOINT_URL_PROVIDED" />
Partagez vos commentaires avec nous
Anchor link toVos commentaires nous aident à créer une meilleure expérience, c’est pourquoi nous serions ravis de connaître votre avis si vous rencontrez des problèmes lors du processus d’intégration du SDK. Si vous rencontrez des difficultés, n’hésitez pas à nous faire part de vos réflexions via ce formulaire.