Obtention d'informations sur la façon dont votre application est appelée depuis BlackBerry Messenger
Vous pouvez utiliser BBMPlatformContextListener.appInvoked() pour afficher la procédure selon laquelle votre application a été appelée depuis BlackBerry Messenger et pour rassembler les données associées, telles que l'utilisateur actuel, le contact, le PPID et les éléments de la zone de profil. Vous pouvez utiliser ces informations pour savoir comment les fonctions BBM intégrées à votre application sont utilisées. Par exemple, il est possible que vous souhaitiez modifier le comportement de votre application pour qu'elle s'ouvre dans le contexte sous lequel elle est généralement appelée, par exemple lors de l'affichage d'une liste d'accomplissements, dans la zone de profil de l'utilisateur. Cela peut également vous aider à déterminer l'importance de ces fonctions pour votre application.
Le tableau suivant montre les informations contextuelles pouvant être affichées par BBMPlatformContextListener.appInvoked(reason, param, user) avec la constante de chaque raison :
| Constante de raison |
L'application est appelée lorsque l'utilisateur actuel clique sur |
Param |
Utilisateur |
|---|---|---|---|
| INVOKE_PROFILE_BOX_ITEM |
Un élément de la zone de profil de l'utilisateur pour l'application |
Objet UserProfileBoxItem cliqué |
L'utilisateur dont l'élément de la zone de profil a reçu un clic (peut être l'utilisateur actuel) |
| INVOKE_PROFILE_BOX |
Un en-tête de la zone de profil de l'utilisateur pour l'application |
null |
L'utilisateur dont l'en-tête de la zone de profil a reçu un clic (peut être l'utilisateur actuel) |
INVOKE_PERSONAL_MESSAGE |
Le lien de messagerie personnelle de l'application dans le profil d'un contact |
La chaîne de messagerie personnelle (sauf le lien vers l'application) |
Le contact dont le lien de messagerie personnelle a reçu un clic |
INVOKE_CHAT_MESSAGE |
Le lien vers l'application dans un message de chat du contact |
null |
Le contact dont le lien de messagerie instantanée a reçu un clic |
Voyons quelques scénarios
public appInvoked(final int reason, final Object param, final Presence user)
{
/* Scenario 1: The current user clicks a contact’s profile box header
* for the app. */
if(reason == BBMPlatformContext.INVOKE_PROFILE_BOX)
{
int ppid = getPPID(user);
/* Add code to capture all the items in the user's profile box,
* for example, activities and achievements) /*
}
/* Scenario 2: The current user clicks a contact’s profile box item for the app.
* The app can capture whose profile box was clicked, and the associated profile
* box item. */
if(reason == BBMPlatformContext.INVOKE_PROFILE_BOX_ITEM)
{
Int ppid = getPPID(user);
UserProfileBoxItem item = (UserProfileBoxItem) param;
// display the profile box item, for example, a game score
int score = Integer.parseInt(item.getCookie());
}
/* Scenario 3: The current user clicks a contact’s personal message link
* in a contact's profile. The app can capture whose personal message
* was clicked and the personal message (minus the app link).*/
if(reason == BBMPlatformContext.INVOKE_PERSONAL_MESSAGE)
{
int ppid = getPPID(user);
String personalMessage = (String) param;
}
/* Scenario 4: The current user clicks a contact’s chat message link
* in a contact's chat message. The app can capture whose chat message
* link was clicked.*/
if(reason == BBMPlatformContext.INVOKE_CHAT_MESSAGE)
{
int ppid = getPPID(user);
// Add code to start an activity with the contact
}
}
// A generic function to obtain a user's unique ID
public static int getPPID (Presence user)
{
if (user instanceof UserProfile)
{ // returns the current user's PPID
return ((UserProfile) user).getPPID();
}
else if(user instanceof BBMPlatformContact)
{ // returns the contact's PPID
return ((BBMPlatformContact) user).getPPID();
}
}
Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.