全部产品
Search
文档中心

Mobile Platform as a Service:Menangani klik notifikasi

更新时间:Jan 22, 2026

Untuk aplikasi yang terintegrasi dengan channel push pihak ketiga dan dijalankan pada perangkat vendor tersebut, server secara default mengirim pesan melalui channel pihak ketiga tersebut. Untuk semua aplikasi lainnya, pesan dikirim melalui channel self-built.

  • Saat channel self-built menerima pesan, push SDK secara otomatis menampilkan notifikasi. Ketika pengguna mengklik notifikasi tersebut, halaman web akan terbuka secara otomatis.

    Penting

    Push SDK menggunakan ID notifikasi yang dimulai dari 10000. Pastikan ID notifikasi lain yang Anda gunakan tidak bentrok dengan rentang ini.

  • Saat channel pihak ketiga menerima pesan, sistem operasi seluler secara otomatis menampilkan notifikasi. Proses ini tidak dapat dikontrol oleh push SDK maupun developer. Push SDK hanya menerima pesan setelah pengguna mengklik notifikasi, dan pada saat itu halaman web akan terbuka secara otomatis.

Prasyarat

  • Metode MPPushMsgServiceAdapter yang dijelaskan dalam topik ini hanya berlaku untuk baseline 10.1.68.32 dan versi yang lebih baru. Jika Anda menggunakan versi baseline sebelum 10.1.68.32, Anda harus melakukan upgrade baseline. Untuk informasi lebih lanjut, lihat mPaaS upgrade guide.

  • Metode AliPushRcvService dari versi lama masih dapat digunakan. Untuk melihat dokumentasi versi tersebut, klik di sini untuk mengunduh.

Redirect to an in-app page

Untuk mengarahkan ke halaman tertentu dalam aplikasi Anda, masukkan deep link kustom, seperti mpaas://navigate, pada alamat pengalihan pesan push. Anda juga perlu menyiapkan Activity routing di aplikasi Anda untuk menerima deep link tersebut dan meneruskannya ke halaman lain.

Tambahkan intent-filter yang sesuai untuk Activity routing tersebut di file AndroidManifest.xml. Contohnya:

<activity android:name=".push.LauncherActivity"
    android:launchMode="singleInstance">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="mpaas" />
    </intent-filter>
</activity>

Ambil URI dan pesan di dalam Activity routing:

Uri uri = intent.getData();
MPPushMsg msg = intent.getParcelableExtra("mp_push_msg");

Customize message handling

Untuk memproses pesan, override metode onMessageReceive dan onChannelMessageClick dari MPPushMsgServiceAdapter:

public class MyPushMsgService extends MPPushMsgServiceAdapter {

    /**
     * Callback untuk pesan yang diterima dari channel self-built.
     *
     * @param msg Pesan yang diterima.
     * @return Boolean yang menunjukkan apakah pesan telah diproses.
     *         - true: SDK tidak memproses pesan. Anda harus menangani pesan, termasuk mengirim notifikasi dan menangani klik berikutnya.
     *         - false: SDK secara otomatis mengirim notifikasi dan menangani aksi klik.
     */
    @Override
    protected boolean onMessageReceive(MPPushMsg msg) {
        Log.d("Message received from self-built channel: " + msg.toString());
        // Proses pesan, misalnya, kirim notifikasi kustom.
        return true;
    }

    /**
     * Callback untuk klik pada notifikasi dari channel pihak ketiga.
     *
     * @param msg Pesan yang diterima.
     * @return Boolean yang menunjukkan apakah klik telah diproses.
     *         - true: SDK tidak menangani klik. Anda harus menangani aksi pengalihan.
     *         - false: SDK secara otomatis menangani aksi pengalihan.
     */
    @Override
    protected boolean onChannelMessageClick(MPPushMsg msg) {
        Log.d("Message from third-party channel was clicked: " + msg.toString());
        // Tangani logika setelah klik.
        return true;
    }

}

Objek MPPushMsg mengenkapsulasi semua parameter pesan:

String id = msg.getId(); // Message ID
boolean isSilent = msg.isSilent(); // Menunjukkan apakah ini pesan silent

String title = msg.getTitle(); // Judul pesan
String content = msg.getContent(); // Isi pesan

String action = msg.getAction(); // Jenis pengalihan. 0: URL. 1: Custom DeepLink.
String url = msg.getUrl(); // Alamat pengalihan, bisa berupa URL atau DeepLink.

int pushStyle = msg.getPushStyle(); // Jenis pesan. 0: Pesan normal. 1: Pesan teks panjang. 2: Pesan media kaya.
String iconUrl = msg.getIconUrl(); // Ikon kecil untuk pesan media kaya.
String imageUrl = msg.getImageUrl(); // Gambar untuk pesan media kaya.

String customId = msg.getCustomId(); // ID pesan kustom.
String params = msg.getParams(); // Parameter tambahan.

Setelah memproses pesan, Anda juga harus melaporkan data instrumentasi pesan. Jika tidak, analisis penggunaan push di Konsol tidak dapat mengumpulkan data yang akurat:

MPPush.reportPushOpen(msg); // Melaporkan bahwa pesan telah dibuka.
MPPush.reportPushIgnored(msg); // Melaporkan bahwa pesan diabaikan.

Untuk pesan dari channel self-built:

  • Pesan silent tidak perlu dilaporkan.

  • Untuk pesan non-silent, laporkan saat pesan dibuka atau diabaikan. Gunakan metode setContentIntent dan setDeleteIntent dari Notification.Builder atau metode valid lainnya untuk mendeteksi aksi pengguna tersebut.

Pesan dari channel pihak ketiga tidak perlu dilaporkan.