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.