Topik ini mencantumkan pertanyaan yang sering diajukan (FAQ) dan menyediakan solusi untuk penggunaan Komponen Message Push Service.
Pertanyaan umum
Persyaratan izin
Pada Android 6.0 dan versi setelahnya, pengguna harus memberikan izin telepon secara manual, termasuk izin untuk membaca dan menulis ke kartu SD. Untuk memastikan akurasi push, pandu pengguna agar memberikan izin yang diperlukan untuk layanan push pesan.
Tidak dapat mencetak log
Saat pengujian pada ponsel Meizu, log seperti log.d dan log.i mungkin gagal dicetak. Untuk mengatasi masalah ini, buka Settings > Accessibility > Developer options dan aktifkan Advanced log output. Jika Anda menghadapi masalah pengembangan, Anda dapat menetapkan tag=mpush untuk memfilter log tersebut.
Pertanyaan terkait Android
Masalah parsing Port pada baseline 10.1.60.5 hingga 10.1.60.7
Dalam lingkungan Apsara Stack, mengonfigurasi server push pada port selain 443 menyebabkan kegagalan parsing dan error koneksi.
Solusi:
Jika Anda melakukan packaging menggunakan file konfigurasi, ubah file konfigurasi sebagai berikut:
// Abaikan bagian lain dari file konfigurasi. Tambahkan backslash (\) dan spasi sebelum nomor port kustom. { "pushPort":"\\ 8000", }Jika Anda tidak melakukan packaging menggunakan file konfigurasi, ubah nilai
rome.push.portdalam fileAndroidManifest.xmlsebagai berikut:// Tambahkan backslash (\) dan spasi sebelum nomor port. <meta-data android:name="rome.push.port" android:value="\ 8000" />
Tidak dapat mengirim push setelah mengintegrasikan saluran pihak ketiga seperti Huawei dan Xiaomi
Masalah ini terjadi karena sakelar saluran di Konsol push mPaaS dinonaktifkan. Untuk contoh kode, petunjuk penggunaan, dan catatan penting, lihat Contoh kode.
Generasi ad-token push (deviceId)
Sisi server menghasilkan deviceId berdasarkan International Mobile Subscriber Identity (IMSI) dan International Mobile Equipment Identity (IMEI). Oleh karena itu, Anda harus memandu pengguna untuk memberikan izin READ_PHONE_STATE yang diperlukan.
Persyaratan versi EMUI dan Huawei Mobile Services untuk notifikasi PUSH
Notifikasi push memiliki persyaratan versi untuk Emotion UI (EMUI) dan Huawei Mobile Services. EMUI adalah sistem operasi yang dikembangkan oleh Huawei berdasarkan platform Android. Untuk detail persyaratan versi, lihat Kondisi perangkat untuk menerima pesan push Huawei.
Tidak dapat mencetak log pada ponsel Huawei
Pada dialer ponsel, masukkan *#*#2846579#*#* untuk membuka menu engineering. Buka Background settings > LOG settings dan pilih AP Log. Mulai ulang ponsel agar perubahan diterapkan.
Kode kesalahan push Huawei
Untuk informasi lebih lanjut tentang kode kesalahan, lihat Kode kesalahan sisi client dan Kode kesalahan sisi server di website resmi Huawei.
Model dan versi sistem yang didukung untuk push OPPO
Saat ini, push OPPO didukung pada model OPPO dengan ColorOS 3.1 atau versi lebih baru, model OnePlus 5/5T dan versi setelahnya, serta semua model realme.
ColorOS adalah sistem operasi seluler yang dikembangkan oleh OPPO berdasarkan platform Android.
Kode kesalahan push OPPO
Jika push OPPO tidak berfungsi, cari OPPO onRegister error = dalam log client untuk mengambil kode kesalahan. Kemudian, rujuk daftar kode kesalahan OPPO untuk mengidentifikasi penyebabnya.
Model dan versi sistem yang didukung untuk push vivo
Tabel berikut menunjukkan model yang didukung dan versi sistem minimum untuk SDK. Untuk pertanyaan lain tentang push vivo, lihat FAQ Push vivo.
Kode kesalahan push vivo
Jika push vivo tidak berfungsi, cari fail to turn on vivo push state = dalam log client untuk mengambil kode status. Kemudian, rujuk Kode status publik untuk mengidentifikasi penyebabnya.
Pemecahan masalah umum Android
Periksa apakah file
Manifesttelah dikonfigurasi dengan benar.Periksa apakah appId (Huawei, Xiaomi, vivo), appSecret (Xiaomi, OPPO), appKey (OPPO, vivo), dan ALIPUSH_APPID (mPaaS) konsisten dengan aplikasi yang terdaftar di masing-masing platform developer.
Lihat log logcat dengan tag `mpush`.
Pertanyaan terkait iOS
Notifikasi saat aplikasi berada di foreground
Secara default, Apple mengirimkan pesan saat aplikasi berada di foreground tetapi tidak menampilkannya. Untuk menampilkan notifikasi saat aplikasi berada di foreground, Anda harus menerapkan solusi kustom.
Status pesan adalah NoBindInfo
Status NoBindInfo menunjukkan bahwa push dikirim menggunakan UserId, tetapi tidak ditemukan informasi binding untuk UserId tersebut. Pastikan terlebih dahulu bahwa client telah memanggil antarmuka binding. Selain itu, periksa bahwa appId dan workspaceId sesuai.
Status pesan adalah BadDeviceToken
Status ini hanya terjadi pada push iOS dan menunjukkan bahwa token yang digunakan untuk push tidak valid. Pertama, verifikasi bahwa lingkungan sertifikat sudah benar.
Jika aplikasi dipaketkan dengan sertifikat development, Anda harus mengonfigurasi sertifikat lingkungan development di Konsol push. Saat melakukan debug pada perangkat fisik dengan Xcode, gunakan sertifikat development.
Jika aplikasi dipaketkan dengan sertifikat production, Anda harus mengonfigurasi sertifikat lingkungan produksi di Konsol push.
Status pesan adalah DeviceTokenNotForTopic
Status ini hanya terjadi pada push iOS dan menunjukkan bahwa token tidak sesuai dengan BundleId dari sertifikat push. Pertama, verifikasi bahwa sertifikat sudah benar dan sesuai dengan BundleId dari client yang dipaketkan.
Tidak dapat menerima pesan di ponsel iOS, tetapi status pesan adalah ACKED
Untuk push iOS, status ACKED menunjukkan bahwa pesan berhasil dikirimkan ke Apple Push Notification service (APNs). Pastikan terlebih dahulu bahwa izin push telah diaktifkan dan aplikasi berjalan di background.
Secara default, Apple mengirimkan pesan saat aplikasi berada di foreground tetapi tidak menampilkannya. Untuk menampilkan notifikasi saat aplikasi berada di foreground, Anda harus menerapkan solusi kustom.
Masalah panggilan RPC
Jika terjadi pengecualian selama pemanggilan resource melalui permintaan RPC, rujuk Kode hasil Security Guard atau Kode hasil Gateway untuk memecahkan masalah tersebut.