Passer au contenu

Personnalisation de Xamarin Android

Suivi des achats In-App

Anchor link to

Pour 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 produit
  • currency – la devise (ex : « USD »)

Exemple :

PushNotificationsManager.Instance.SendInappPurchase("com.your.app.Marketing", BigDecimal.ValueOf(149.95), "USD");

Liens profonds

Anchor link to

Ajoutez 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 to

Pushwoosh 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 to

Si 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 to

Pour 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 to

Ajoutez les options suivantes si vous utilisez ProGuard :

-keep class com.pushwoosh.** { *; }
-dontwarn com.pushwoosh.**

Personnalisation du comportement d’ouverture des notifications

Anchor link to

Si 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 to

Pour 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 to

Pushwoosh 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 to

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