Mendapatkan informasi tentang cara aplikasi Anda diaktifkan dari dalam BlackBerry Messenger

Anda bisa menggunakan BBMPlatformContextListener.appInvoked() untuk merekam cara aplikasi Anda diaktifkan dari dalam BlackBerry Messenger dan untuk mengumpulkan data terkait, seperti pengguna sekarang, kontak, PPID, dan item kotak profil. Anda bisa menggunakan informasi ini untuk mempelajari bagaimana fitur BBM yang terintegrasi pada aplikasi Anda digunakan. Misalnya, Anda mungkin ingin mengubah perilaku aplikasi Anda sehingga aplikasi terbuka dalam konteks di mana aplikasi biasanya diaktifkan, seperti saat menampilkan daftar prestasi dalam kotak profil pengguna. Informasi ini juga membantu Anda untuk menentukan urgensi fitur tersebut untuk aplikasi Anda.

Tabel berikut menunjukkan informasi kontekstual yang bisa BBMPlatformContextListener.appInvoked(reason, param, user) merekam setiap alasan konstan:

Alasan konstan

Aplikasi diaktifkan saat pengguna mengklik

Param

Pengguna

INVOKE_PROFILE_BOX_ITEM

Item kotak profil pengguna untuk aplikasi

UserProfileBoxItem yang diklik

Pengguna yang item kotak profilnya diklik (mungkin pengguna sekarang)

INVOKE_PROFILE_BOX

Header kotak profil pengguna untuk aplikasi

null

Pengguna yang kotak profilnya diklik (mungkin pengguna sekarang)

INVOKE_PERSONAL_MESSAGE

Tautan pesan pribadi aplikasi dalam profil kontak

String pesan pribadi (tidak termasuk tautan ke aplikasi)

Kontak yang tautan pesan pribadinya diklik

INVOKE_CHAT_MESSAGE

Tautan ke aplikasi dalam pesan obrolan kontak

null

Kontak yang tautan ke pesan obrolannya diklik

Mari kita lihat beberapa skenario

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();
    }
}
Topik berikutnya: Pemecahan masalah

Apakah informasi ini berguna? Kirimkan komentar Anda kepada kami.