Informazioni sul metodo di richiamo dell'applicazione da BlackBerry Messenger

È possibile utilizzare BBMPlatformContextListener.appInvoked() per rilevare il metodo di richiamo dell'applicazione da BlackBerry Messenger e per raccogliere i relativi dati, come l'utente attuale, il contatto, il PPID e le voci della casella del profilo. È possibile utilizzare queste informazioni per imparare come vengono utilizzate le funzionalità BBM integrate nell'applicazione. Ad esempio, si potrebbe voler modificare il comportamento dell'applicazione in modo che venga aperta nel contesto in cui viene solitamente richiamata, ad esempio quando si visualizza un elenco di successi in una casella del profilo dell'utente. Le informazioni possono anche aiutare a determinare l'importanza di queste funzionalità per l'applicazione.

La tabella seguente mostra le informazioni contestuali che BBMPlatformContextListener.appInvoked(reason, param, user) può acquisire con ogni costante motivo:

Costante motivo

L'applicazione è richiamata quando l'utente attuale fa clic

Parametro

Utente

INVOKE_PROFILE_BOX_ITEM

Una voce della casella del profilo dell'utente per l'applicazione

Il UserProfileBoxItem su cui è stato fatto clic

L'utente sulla cui voce della casella del profilo è stato fatto clic (potrebbe essere l'utente attuale)

INVOKE_PROFILE_BOX

Un'intestazione della casella del profilo dell'utente per l'applicazione

null

L'utente sulla cui casella del profilo è stato fatto clic (potrebbe essere l'utente attuale)

INVOKE_PERSONAL_MESSAGE

Il collegamento al messaggio personale dell'applicazione in un profilo del contatto

La stringa del messaggio personale (escluso il collegamento all'applicazione)

Il contatto sul cui collegamento al messaggio personale è stato fatto clic

INVOKE_CHAT_MESSAGE

Il collegamento all'applicazione in un messaggio di chat del contatto

null

Il contatto sul cui collegamento al messaggio di chat è stato fatto clic

Di seguito verranno esaminati alcuni scenari

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();
    }
}
Argomento successivo: Risoluzione dei problemi

Le informazioni sono state utili? Inviateci i vostri commenti.