Topik ini menjelaskan cara mengintegrasikan komponen Mobile Push Service ke dalam klien Android. MPS mendukung dua metode integrasi: integrasi native AAR dan integrasi berbasis komponen (Portal & Bundle).
Prasyarat
Anda telah mengintegrasikan mPaaS ke dalam proyek Anda.
Jika Anda menggunakan jenis koneksi native AAR, Anda harus terlebih dahulu menambahkan mPaaS ke proyek Anda menambahkan mPaaS ke proyek Anda.
Jika Anda menggunakan jenis koneksi berbasis komponen, Anda harus terlebih dahulu menyelesaikan proses integrasi proses integrasi berbasis komponen.
Anda telah memperoleh file konfigurasi
.configdari Konsol mPaaS. Untuk informasi lebih lanjut tentang cara membuat dan mengunduh file konfigurasi tersebut, lihat Langkah 3: Tambahkan file konfigurasi ke proyek Anda Tambahkan file konfigurasi ke proyek Anda.Metode
MPPushMsgServiceAdapterdalam topik ini hanya berlaku untuk garis dasar 10.1.68.32 dan versi yang lebih baru. Jika versi garis dasar Anda lebih lama dari 10.1.68.32, Anda harus melakukan peningkatan dengan mengikuti petunjuk dalam panduan peningkatan mPaaS 10.1.68 panduan peningkatan mPaaS.CatatanMetode
AliPushRcvServicedari versi sebelumnya masih didukung. Untuk melihat dokumentasi versi sebelumnya, klik di sini untuk mengunduh.
Prosedur
Untuk menggunakan Mobile Push Service, selesaikan langkah-langkah berikut:
Tambahkan dependensi Push SDK dan konfigurasikan file AndroidManifest.
Tambahkan dependensi SDK. Ikuti petunjuk sesuai jenis koneksi Anda:
Native AAR: Di proyek Anda, gunakan Component Management (AAR) untuk menginstal komponen Mobile Push (PUSH). Untuk informasi lebih lanjut, lihat Kelola dependensi komponen (native AAR)Kelola dependensi komponen (native AAR).
Berbasis komponen: Di proyek Portal dan Bundle Anda, gunakan Component Management untuk menginstal komponen Mobile Push (PUSH). Untuk informasi lebih lanjut, lihat Proses integrasi Tambahkan dependensi komponen.
Tambahkan konfigurasi untuk
AndroidManifestdengan menambahkan konten berikut ke fileAndroidManifest.xml:CatatanJika Anda menggunakan jenis koneksi berbasis komponen, tambahkan konfigurasi
AndroidManifestdi proyek Portal.<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <service android:name="com.alipay.pushsdk.push.NotificationService" android:enabled="true" android:exported="false" android:label="NotificationService" android:process=":push"> <intent-filter> <action android:name="${applicationId}.push.action.START_PUSHSERVICE" /> </intent-filter> </service> <receiver android:name="com.alipay.pushsdk.BroadcastActionReceiver" android:enabled="true" android:exported="true" android:process=":push"> <intent-filter android:priority="2147483647"> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name="android.intent.action.USER_PRESENT" /> <action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> </intent-filter> </receiver>Untuk meningkatkan laju pengiriman pesan, SDK MPS memiliki fitur keepalive proses bawaan. Fitur ini mencakup
com.alipay.pushsdk.BroadcastActionReceiver, yang mendengarkan siaran sistem untuk memulai proses push, serta menyediakan restart otomatis jika proses dihentikan. Anda dapat mengaktifkan atau menonaktifkan fitur-fitur ini sesuai kebutuhan:Untuk berhenti mendengarkan siaran boot sistem, hapus kode berikut:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <action android:name="android.intent.action.BOOT_COMPLETED" />Untuk berhenti mendengarkan siaran perubahan jaringan, hapus kode berikut:
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />Untuk berhenti mendengarkan siaran kehadiran pengguna, hapus kode berikut:
<action android:name="android.intent.action.USER_PRESENT" />Untuk berhenti mendengarkan siaran perubahan status pengisian daya, hapus kode berikut:
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />Jika Anda tidak perlu menerima semua siaran di atas, Anda dapat mengatur properti
android:enableddaricom.alipay.pushsdk.BroadcastActionReceivermenjadi false.Untuk mencegah proses push secara otomatis dimulai ulang setelah dihentikan, tambahkan konfigurasi berikut di bawah node
application:<meta-data android:name="force.kill.push" android:value="on" />CatatanKonfigurasi ini hanya berlaku untuk versi garis dasar 10.2.3.21 dan yang lebih baru.
Inisialisasi layanan push untuk membuat koneksi persisten antara klien dan gerbang Mobile Push. Push SDK mempertahankan koneksi persisten ini, yang merupakan saluran buatan sendiri.
Ikuti petunjuk sesuai jenis koneksi Anda:
Native AAR
Jika Anda telah menyelesaikan proses dalam Inisialisasi mPaaS di
Application, panggil metode berikut setelah metodeMP.init():MPPush.init(this);Jika Anda belum memanggil metode inisialisasi mPaaS, panggil metode berikut di
Application:MPPush.setup(this); MPPush.init(this);
Berbasis komponen
Panggil metode berikut di metode
postInitdariLauncherApplicationAgentatauLauncherActivityAgent:MPPush.init(context);
Buat layanan yang mewarisi
MPPushMsgServiceAdapterdan override metodeonTokenReceiveuntuk menerima ID perangkat (token) dari saluran buatan sendiri.public class MyPushMsgService extends MPPushMsgServiceAdapter { /** * Callback untuk menerima token dari saluran buatan sendiri * * @param token Token untuk saluran buatan sendiri */ @Override protected void onTokenReceive(String token) { Log.d("Received token for self-built channel: " + token); } }Deklarasikan layanan ini di file
AndroidManifest.xml:<service android:name="com.mpaas.demo.push.MyPushMsgService" android:exported="false"> <intent-filter> <action android:name="${applicationId}.push.action.MESSAGE_RECEIVED" /> <action android:name="${applicationId}.push.action.REGISTRATION_ID" /> <category android:name="${applicationId}" /> </intent-filter> </service>Setelah menyelesaikan langkah ini, Anda dapat mengirimkan pesan ke perangkat tertentu dari Konsol menggunakan dimensi perangkat. ID perangkat yang diperlukan adalah token yang telah Anda terima.
Menyambungkan user ID. User ID ini ditentukan oleh developer. ID tersebut dapat berupa identitas pengguna dari sistem pengguna Anda atau parameter lain yang dapat dipetakan ke setiap pengguna, seperti akun atau nomor telepon seluler.
Setelah menerima token, Anda dapat menyambungkan token tersebut ke user ID:
String userId = "custom_user_id"; ResultPbPB bindResult = MPPush.bind(context, userId, token); Log.d("Attach user ID " + (bindResult.success ? "succeeded" : ("failed: " + bindResult.code)));Jika Anda telah memanggil
MPLoggeruntuk mengatur user ID, Anda dapat menghilangkan user ID saat menyambungkan token. Contohnya:MPLogger.setUserId("custom_user_id"); ResultPbPB bindResult = MPPush.bind(context, token);Untuk melepaskan user ID, misalnya ketika pengguna logout, panggil metode berikut:
ResultPbPB unbindResult = MPPush.unbind(context, userId, token); ResultPbPB unbindResult = MPPush.unbind(context, token);Setelah menyelesaikan langkah ini, Anda dapat mengirimkan pesan ke pengguna tertentu dari Konsol menggunakan dimensi pengguna. Identitas pengguna yang diperlukan adalah user ID kustom Anda.
(Opsional) Menyambungkan nomor telepon seluler pengguna.
PentingSaat ini, layanan pesan teks tambahan hanya tersedia di Wilayah China (Hangzhou) untuk layanan non-keuangan.
Setelah menerima token, Anda juga dapat menyambungkan token tersebut ke nomor telepon seluler pengguna. Anda dapat menyambungkan token ke user ID dan nomor telepon seluler secara bersamaan. Setelah nomor telepon seluler disambungkan, pengguna dapat menerima notifikasi push sebagai pesan teks pada nomor tersebut.
String userId = "custom_user_id"; String phoneNumber = "138xxxxxxxx" ResultPbPB bindResult = MPPush.bind(context, userId, token,phoneNumber); Log.d("Attach user ID " + (bindResult.success ? "succeeded" : ("failed: " + bindResult.code)));
Operasi terkait
Untuk meningkatkan laju pengiriman pesan, integrasikan saluran push pihak ketiga yang disediakan oleh produsen ponsel Android. Saluran Huawei, Xiaomi, OPPO, dan vivo didukung. Untuk informasi lebih lanjut, lihat Integrasikan saluran pihak ketiga.
Secara default, ketika pesan diterima, SDK menampilkan notifikasi yang membuka halaman web saat diklik. Untuk mengarahkan ke halaman dalam aplikasi menggunakan deep link kustom atau menyesuaikan perilaku klik notifikasi, lihat Tangani klik notifikasi.
Untuk informasi lebih lanjut tentang fitur lainnya, lihat Fitur Lanjutan.
Contoh kode
Untuk mengunduh paket kode contoh, klik di sini.
Langkah selanjutnya
Setelah integrasi selesai, Anda dapat memanggil RESTful API di sisi server untuk mengirimkan pesan. Untuk informasi lebih lanjut, lihat Konfigurasi sisi server.