MTPush-API

MTCorePrivatesApi

  • Digunakan terutama untuk konfigurasi informasi.
  • Semua metode harus dipanggil di proses utama. Jangan melakukan pengecekan proses sebelum memanggil metode ini atau menempatkannya di proses anak, jika tidak akan terjadi kesalahan pemanggilan.

configAppKey

  • Panggil di Application.onCreate()
  • Panggil sebelum init
/** * Mengonfigurasi application key tanpa perlu konfigurasi di AndroidManifest.xml * Panggil di Application.onCreate() * Panggil sebelum [init](#init) * * @param context tidak boleh null * @param appKey tidak boleh null */ public static void configAppKey(Context context, String appKey)
              
              /**
* Mengonfigurasi application key tanpa perlu konfigurasi di AndroidManifest.xml
* Panggil di Application.onCreate()
* Panggil sebelum [init](#init)
*
* @param context tidak boleh null
* @param appKey tidak boleh null
*/
public static void configAppKey(Context context, String appKey)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode: Java:

MTCorePrivatesApi.configAppKey(this, "appkey_anda");
              
              MTCorePrivatesApi.configAppKey(this, "appkey_anda");

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTCorePrivatesApi.configAppKey(this, "your appkey")
              
              MTCorePrivatesApi.configAppKey(this, "your appkey")

            
Tampilkan blok kode ini di jendela mengambang

configAppChannel

  • Panggil di Application.onCreate()
  • Panggil sebelum init
/** * Mengonfigurasi channel aplikasi tanpa perlu konfigurasi di AndroidManifest.xml * Panggil di Application.onCreate() * Panggil sebelum init * * @param context Tidak boleh null * @param appChannel Tidak boleh null */ public static void configAppChannel(Context context, String appChannel)
              
              /**
 * Mengonfigurasi channel aplikasi tanpa perlu konfigurasi di AndroidManifest.xml
 * Panggil di Application.onCreate()
 * Panggil sebelum init
 *
 * @param context Tidak boleh null
 * @param appChannel Tidak boleh null
 */
public static void configAppChannel(Context context, String appChannel)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode: Java:

MTCorePrivatesApi.configAppChannel(this, "nama_channel_anda");
              
              MTCorePrivatesApi.configAppChannel(this, "nama_channel_anda");

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTCorePrivatesApi.configAppChannel(this, "your_appChannel")
              
              MTCorePrivatesApi.configAppChannel(this, "your_appChannel")

            
Tampilkan blok kode ini di jendela mengambang

configAppSiteName

  • Panggil di Application.onCreate()
  • Panggil sebelum init
/** * Mengonfigurasi nama site data center tanpa perlu konfigurasi di AndroidManifest.xml * Node yang tersedia: Singapore, USA_Virginia, DEU_Frankfurt, HongKong. * Panggil di Application.onCreate() * Panggil sebelum [init](#init) * * @param context tidak boleh null * @param appSiteName tidak boleh null */ public static void configAppSiteName(Context context, String appSiteName)
              
              /**
* Mengonfigurasi nama site data center tanpa perlu konfigurasi di AndroidManifest.xml
* Node yang tersedia: Singapore, USA_Virginia, DEU_Frankfurt, HongKong.
* Panggil di Application.onCreate()
* Panggil sebelum [init](#init)
*
* @param context tidak boleh null
* @param appSiteName tidak boleh null
*/
public static void configAppSiteName(Context context, String appSiteName)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode: Java:

MTCorePrivatesApi.configAppSiteName(this, "NamaSiteDataCenter");
              
              MTCorePrivatesApi.configAppSiteName(this, "NamaSiteDataCenter");

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTCorePrivatesApi.configAppSiteName(this, "Your Platform Data Center Site Name")
              
              MTCorePrivatesApi.configAppSiteName(this, "Your Platform Data Center Site Name")

            
Tampilkan blok kode ini di jendela mengambang

configHeartbeatInterval

  • Panggil di Application.onCreate()
  • Panggil sebelum init
/** * Mengatur interval heartbeat * Panggil di Application.onCreate() * * @param context tidak boleh null * @param heartbeatInterval Dalam milidetik, >0, default 4 menit 50 detik */ public static void configHeartbeatInterval(Context context, long heartbeatInterval)
              
              /**
 * Mengatur interval heartbeat
 * Panggil di Application.onCreate()
 *
 * @param context tidak boleh null
 * @param heartbeatInterval Dalam milidetik, >0, default 4 menit 50 detik
 */
public static void configHeartbeatInterval(Context context, long heartbeatInterval)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode (interval 3 menit): Java:

MTCorePrivatesApi.configHeartbeatInterval(this, 3*60*1000);
              
              MTCorePrivatesApi.configHeartbeatInterval(this, 3*60*1000);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTCorePrivatesApi.configHeartbeatInterval(this, 3 * 60 * 1000)
              
              MTCorePrivatesApi.configHeartbeatInterval(this, 3 * 60 * 1000)

            
Tampilkan blok kode ini di jendela mengambang

configConnectRetryCount

  • Panggil di Application.onCreate()
  • Panggil sebelum init
/** * Mengatur jumlah retry koneksi panjang * Panggil di Application.onCreate() * * @param context tidak boleh null * @param connectRetryCount Default 3, minimal 3 */ public static void configConnectRetryCount(Context context, int connectRetryCount)
              
              /**
 * Mengatur jumlah retry koneksi panjang
 * Panggil di Application.onCreate()
 *
 * @param context tidak boleh null
 * @param connectRetryCount Default 3, minimal 3
 */
public static void configConnectRetryCount(Context context, int connectRetryCount)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode (retry 10 kali): Java:

MTCorePrivatesApi.configConnectRetryCount(this, 10);
              
              MTCorePrivatesApi.configConnectRetryCount(this, 10);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTCorePrivatesApi.configConnectRetryCount(this, 10)
              
              MTCorePrivatesApi.configConnectRetryCount(this, 10)

            
Tampilkan blok kode ini di jendela mengambang

setTcpSSl

  • Panggil di Application.onCreate()
  • Panggil sebelum init
/** * Mengatur apakah koneksi panjang dienkripsi, default tidak * Panggil di Application.onCreate() * * @param isSSL true untuk enkripsi, false untuk tidak */ public static void setTcpSSl(boolean isSSL)
              
              /**
 * Mengatur apakah koneksi panjang dienkripsi, default tidak
 * Panggil di Application.onCreate()
 *
 * @param isSSL true untuk enkripsi, false untuk tidak
 */
public static void setTcpSSl(boolean isSSL)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode (aktifkan enkripsi): Java:

MTCorePrivatesApi.setTcpSSl(true);
              
              MTCorePrivatesApi.setTcpSSl(true);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTCorePrivatesApi.setTcpSSl(context, true)
              
              MTCorePrivatesApi.setTcpSSl(context, true)

            
Tampilkan blok kode ini di jendela mengambang

configDebugMode

  • Panggil di Application.onCreate()
  • Panggil sebelum init
  • Format log EngageLab, cari "ENGAGELAB-PRIVATES"
  • Log dipisah antara proses utama dan proses anak
/** * Mengatur mode debug, akan mencetak log lebih detail * Panggil di Application.onCreate() * * @param context tidak boleh null * @param enable true untuk debug, false untuk tidak */ public static void configDebugMode(Context context, boolean enable)
              
              /**
 * Mengatur mode debug, akan mencetak log lebih detail
 * Panggil di Application.onCreate()
 *
 * @param context tidak boleh null
 * @param enable true untuk debug, false untuk tidak
 */
public static void configDebugMode(Context context, boolean enable)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode: Java:

// Disarankan true saat pengembangan MTCorePrivatesApi.configDebugMode(context.getApplicationContext(), true); // Disarankan false saat rilis MTCorePrivatesApi.configDebugMode(context.getApplicationContext(), false);
              
              // Disarankan true saat pengembangan
MTCorePrivatesApi.configDebugMode(context.getApplicationContext(), true);
// Disarankan false saat rilis
MTCorePrivatesApi.configDebugMode(context.getApplicationContext(), false);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

// It is recommended to set it to true when the application is not online, which is convenient for integration MTCorePrivatesApi.configDebugMode(context.applicationContext, true) // It is recommended to set it to false after the application is launched MTCorePrivatesApi.configDebugMode(context.applicationContext, false)
              
              // It is recommended to set it to true when the application is not online, which is convenient for integration
MTCorePrivatesApi.configDebugMode(context.applicationContext, true)

// It is recommended to set it to false after the application is launched
MTCorePrivatesApi.configDebugMode(context.applicationContext, false)

            
Tampilkan blok kode ini di jendela mengambang

configSM4

  • Panggil di Application.onCreate()
  • Panggil sebelum init
/** * Konfigurasi enkripsi standar nasional * @param context tidak boleh null */ public static void configSM4(Context context)
              
              /**
 * Konfigurasi enkripsi standar nasional
 * @param context tidak boleh null
 */
public static void configSM4(Context context)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode: Java:

MTCorePrivatesApi.configSM4(context.getApplicationContext());
              
              MTCorePrivatesApi.configSM4(context.getApplicationContext());

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

// Enable national secret encryption, if not called, use the default encryption method MTCorePrivatesApi.configSM4(context.applicationContext)
              
              // Enable national secret encryption, if not called, use the default encryption method
     MTCorePrivatesApi.configSM4(context.applicationContext)

            
Tampilkan blok kode ini di jendela mengambang

getUserId

Jika hasil kosong, cek apakah sudah konfigurasi dan inisialisasi Jika sudah benar, mungkin masih proses koneksi, cek saat onConnectStatus true

/** * Mendapatkan userId perangkat saat ini, pengenal unik EngageLab * @param context tidak boleh null * @return userId */ public static String getUserId(Context context)
              
              /**
 * Mendapatkan userId perangkat saat ini, pengenal unik EngageLab
 * @param context tidak boleh null
 * @return userId
 */
public static String getUserId(Context context)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode: Java:

String userId = MTCorePrivatesApi.getUserId(context);
              
              String userId = MTCorePrivatesApi.getUserId(context);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

val userId = MTCorePrivatesApi.getUserId(context)
              
              val userId = MTCorePrivatesApi.getUserId(context)

            
Tampilkan blok kode ini di jendela mengambang

getRegistrationId

Jika hasil kosong, cek apakah sudah konfigurasi dan inisialisasi Jika sudah benar, mungkin masih proses koneksi, cek saat onConnectStatus true

/** * Mendapatkan registrationId perangkat saat ini, pengenal unik EngageLab * @param context tidak boleh null * @return registrationId */ public static String getRegistrationId(Context context)
              
              /**
 * Mendapatkan registrationId perangkat saat ini, pengenal unik EngageLab
 * @param context tidak boleh null
 * @return registrationId
 */
public static String getRegistrationId(Context context)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode: Java:

String registrationId = MTCorePrivatesApi.getRegistrationId(context);
              
              String registrationId = MTCorePrivatesApi.getRegistrationId(context);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

val registrationId = MTCorePrivatesApi.getRegistrationId(context)
              
              val registrationId = MTCorePrivatesApi.getRegistrationId(context)

            
Tampilkan blok kode ini di jendela mengambang

setEnableResetOnDeviceChange

  • Panggil di Application.onCreate()
  • Panggil sebelum init
  • Default false (nonaktif)
/** * Konfigurasi migrasi perangkat * Jika aktif, saat model perangkat berubah, registration ID dan UID lokal akan dihapus & didaftarkan ulang * Default false * * @param context Tidak boleh null * @param enable true aktif, false nonaktif */ public static void setEnableResetOnDeviceChange(Context context, boolean enable)
              
              /**
 * Konfigurasi migrasi perangkat
 * Jika aktif, saat model perangkat berubah, registration ID dan UID lokal akan dihapus & didaftarkan ulang
 * Default false
 *
 * @param context Tidak boleh null
 * @param enable true aktif, false nonaktif
 */
public static void setEnableResetOnDeviceChange(Context context, boolean enable)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode: Java:

MTCorePrivatesApi.setEnableResetOnDeviceChange(this, true); // aktifkan MTCorePrivatesApi.setEnableResetOnDeviceChange(this, false); // nonaktif (default)
              
              MTCorePrivatesApi.setEnableResetOnDeviceChange(this, true); // aktifkan
MTCorePrivatesApi.setEnableResetOnDeviceChange(this, false); // nonaktif (default)

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

// Enable device migration functionality MTCorePrivatesApi.setEnableResetOnDeviceChange(this, true) // Disable device migration functionality (default state) MTCorePrivatesApi.setEnableResetOnDeviceChange(this, false)
              
              // Enable device migration functionality
        MTCorePrivatesApi.setEnableResetOnDeviceChange(this, true)
        
        // Disable device migration functionality (default state)
        MTCorePrivatesApi.setEnableResetOnDeviceChange(this, false)

            
Tampilkan blok kode ini di jendela mengambang

MTPushPrivatesApi

  • Digunakan untuk fungsi push
  • Semua metode harus dipanggil di proses utama, jangan cek proses sebelum memanggil atau menempatkan di proses anak, jika tidak akan error

configUserLanguage

/** * Konfigurasi bahasa notifikasi push, gunakan setelah MTPushPrivatesApi.init * @param context Tidak boleh null * @param pushLanguage Saat string kosong, kembalikan ke bahasa perangkat */ public static void configUserLanguage(Context context, String pushLanguage)
              
              /**
 * Konfigurasi bahasa notifikasi push, gunakan setelah MTPushPrivatesApi.init
 * @param context Tidak boleh null
 * @param pushLanguage Saat string kosong, kembalikan ke bahasa perangkat
 */
public static void configUserLanguage(Context context, String pushLanguage)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.configUserLanguage(context,"zh-Hans");
              
                  MTPushPrivatesApi.configUserLanguage(context,"zh-Hans");  

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.configUserLanguage(context, "zh-Hans")
              
                  MTPushPrivatesApi.configUserLanguage(context, "zh-Hans")

            
Tampilkan blok kode ini di jendela mengambang

Kode bahasa yang didukung lihat Push API

setEnablePushTextToSpeech

/** * Pengaturan fitur siaran suara, perlu impor paket suara (mt-sdk-sound-x.x.x.aar) * @param context Tidak boleh null * @param enable true aktif, false nonaktif, default false */ public static void setEnablePushTextToSpeech(Context context, boolean enable)
              
              /**
 * Pengaturan fitur siaran suara, perlu impor paket suara (mt-sdk-sound-x.x.x.aar)
 * @param context Tidak boleh null
 * @param enable true aktif, false nonaktif, default false
 */
public static void setEnablePushTextToSpeech(Context context, boolean enable)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode: Java:

MTPushPrivatesApi.setEnablePushTextToSpeech(context, true);
              
              MTPushPrivatesApi.setEnablePushTextToSpeech(context, true);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.setEnablePushTextToSpeech(context, true)
              
              MTPushPrivatesApi.setEnablePushTextToSpeech(context, true)

            
Tampilkan blok kode ini di jendela mengambang

init

  • Disarankan dipanggil di Application.onCreate()
/** * Inisialisasi MTPush * Disarankan di Application.onCreate() * @param context tidak boleh null, gunakan applicationContext */ public static void init(Context context)
              
              /**
 * Inisialisasi MTPush
 * Disarankan di Application.onCreate()
 * @param context tidak boleh null, gunakan applicationContext
 */
public static void init(Context context)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode: Java:

MTPushPrivatesApi.init(context.getApplicationContext());
              
              MTPushPrivatesApi.init(context.getApplicationContext());

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

class ExampleApplication : Application() { override fun onCreate() { super.onCreate() // turn on debug mode MTCorePrivatesApi.configDebugMode(applicationContext, true) // initialization MTPushPrivatesApi.init(applicationContext) } }
              
              class ExampleApplication : Application() {

    override fun onCreate() {
        super.onCreate()
        // turn on debug mode
        MTCorePrivatesApi.configDebugMode(applicationContext, true)
        // initialization
        MTPushPrivatesApi.init(applicationContext)
    }
}

            
Tampilkan blok kode ini di jendela mengambang

setCollectControl

  • Atur kontrol pengumpulan data
  • Disarankan dipanggil di Application.onCreate(), sebelum init
/** * Atur kontrol pengumpulan data * Kontrol apakah data tertentu dikumpulkan dari perangkat * Disarankan di Application.onCreate(), sebelum init * @param control Objek kontrol, tidak boleh null */ public static void setCollectControl(MTPushCollectControl control)
              
              /**
 * Atur kontrol pengumpulan data
 * Kontrol apakah data tertentu dikumpulkan dari perangkat
 * Disarankan di Application.onCreate(), sebelum init
 * @param control Objek kontrol, tidak boleh null
 */
public static void setCollectControl(MTPushCollectControl control)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode: Java:

MTPushCollectControl collectControl = new MTPushCollectControl(); collectControl.setGaid(true); // true aktif, false nonaktif. Default aktif. MTPushPrivatesApi.setCollectControl(collectControl);
              
              MTPushCollectControl collectControl = new MTPushCollectControl();
collectControl.setGaid(true); // true aktif, false nonaktif. Default aktif.
MTPushPrivatesApi.setCollectControl(collectControl);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

class ExampleApplication : Application() { override fun onCreate() { super.onCreate() // Configure data collection control val collectControl = MTPushCollectControl() collectControl.setGaid(true) // Enable GAID collection, false to disable. Enabled by default. MTPushPrivatesApi.setCollectControl(collectControl) // Initialization MTPushPrivatesApi.init(applicationContext) } }
              
              class ExampleApplication : Application() {

    override fun onCreate() {
        super.onCreate()
        // Configure data collection control
        val collectControl = MTPushCollectControl()
        collectControl.setGaid(true) // Enable GAID collection, false to disable. Enabled by default.
        MTPushPrivatesApi.setCollectControl(collectControl)
        
        // Initialization
        MTPushPrivatesApi.init(applicationContext)
    }
}

            
Tampilkan blok kode ini di jendela mengambang

goToAppNotificationSettings

  • Setelah SDK berjalan, Anda bisa menerima callback hasil pada onNotificationStatus, lalu putuskan perlu/tidaknya memanggil metode ini
/** * Masuk ke pengaturan notifikasi aplikasi * @param context tidak boleh null */ public static void goToAppNotificationSettings(Context context)
              
              /**
 * Masuk ke pengaturan notifikasi aplikasi
 * @param context tidak boleh null
 */
public static void goToAppNotificationSettings(Context context)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode: Java:

MTPushPrivatesApi.goToAppNotificationSettings(this);
              
              MTPushPrivatesApi.goToAppNotificationSettings(this);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

// Go to the notification switch setting page, the customer needs to manually turn on the notification switch MTPushPrivatesApi.goToAppNotificationSettings(this) // After inheriting MTCommonReceiver, rewrite the onNotificationStatus method to obtain the status of the notification switch. If enable is true, it means that it has been successfully enabled override fun onNotificationStatus(context: Context, enable: Boolean) { if (enable) { // The notification switch has been set to open } }
              
              // Go to the notification switch setting page, the customer needs to manually turn on the notification switch
     MTPushPrivatesApi.goToAppNotificationSettings(this)
    
     // After inheriting MTCommonReceiver, rewrite the onNotificationStatus method to obtain the status of the notification switch. If enable is true, it means that it has been successfully enabled
     override fun onNotificationStatus(context: Context, enable: Boolean) {
         if (enable) {
             // The notification switch has been set to open
         }
     }

            
Tampilkan blok kode ini di jendela mengambang

turnOnPush

  • Umumnya untuk mengaktifkan push setelah turnOffPush
  • Pemanggilan berulang hanya berlaku sekali
  • Jika lingkungan tidak bermasalah, onConnectStatus akan mengembalikan hasil
  • Channel didukung: Engagelab/Huawei/Xiaomi/Meizu/oppo/vivo
/** * Aktifkan Push, status disimpan persisten true, default true * @param context tidak boleh null */ public static void turnOnPush(Context context)
              
              /**
 * Aktifkan Push, status disimpan persisten true, default true
 * @param context tidak boleh null
 */
public static void turnOnPush(Context context)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode: Java:

MTPushPrivatesApi.turnOnPush(context);
              
              MTPushPrivatesApi.turnOnPush(context);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

// Turn on the push, which is turned on by default MTPushPrivatesApi.turnOnPush(context) // After inheriting MTCommonReceiver, rewrite the onConnectStatus method to obtain the connection status of the long connection. If enable is true, it means that it has been successfully opened override fun onConnectStatus(context: Context, enable: Boolean) { if (enable) { // enable push push successfully } }
              
              // Turn on the push, which is turned on by default
MTPushPrivatesApi.turnOnPush(context)

// After inheriting MTCommonReceiver, rewrite the onConnectStatus method to obtain the connection status of the long connection. If enable is true, it means that it has been successfully opened
override fun onConnectStatus(context: Context, enable: Boolean) {
    if (enable) {
        // enable push push successfully
    }
}

            
Tampilkan blok kode ini di jendela mengambang

turnOffPush

  • Umumnya untuk menonaktifkan push
  • Setelah dinonaktifkan, panggilan init tidak akan mengaktifkan push
  • Pemanggilan berulang hanya berlaku sekali
  • Jika lingkungan tidak bermasalah, onConnectStatus akan mengembalikan hasil
  • Channel didukung: Engagelab/Huawei/Xiaomi/Meizu/oppo/vivo
/** * Nonaktifkan push, status disimpan persisten false, default true * @param context tidak boleh null */ public static void turnOffPush(Context context)
              
              /**
 * Nonaktifkan push, status disimpan persisten false, default true
 * @param context tidak boleh null
 */
public static void turnOffPush(Context context)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode: Java:

MTPushPrivatesApi.turnOffPush(context);
              
              MTPushPrivatesApi.turnOffPush(context);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

// Turn off the push, you need to call turnOnPush again to turn on the push MTPushPrivatesApi.turnOffPush(context) // After inheriting MTCommonReceiver, rewrite the onConnectStatus method to get the long connection status. If enable is false, it means that it has been closed successfully override fun onConnectStatus(context: Context, enable: Boolean) { if (!enable) { // close push push successfully } }
              
              // Turn off the push, you need to call turnOnPush again to turn on the push
MTPushPrivatesApi.turnOffPush(context)

// After inheriting MTCommonReceiver, rewrite the onConnectStatus method to get the long connection status. If enable is false, it means that it has been closed successfully
override fun onConnectStatus(context: Context, enable: Boolean) {
    if (!enable) {
        // close push push successfully
    }
}

            
Tampilkan blok kode ini di jendela mengambang

addTag

  • Panggil init terlebih dahulu, jika tidak pemanggilan tidak valid
  • Jika lingkungan tidak bermasalah, onTagMessage akan mengembalikan hasil
/** * Tambah tag yang ditentukan (logika akumulasi, tag yang diatur sebelumnya tetap ada) * * @param context tidak boleh kosong * @param sequence Nomor urut operasi yang ditentukan pengguna, dikembalikan bersama hasil operasi * @param tags array tag, panjang setiap nama tag maks 40 byte, maks 1000 tag, panjang total satu operasi tidak boleh melebihi 5000 byte */ public static void addTag(Context context, int sequence, String... tags)
              
                   /**
      * Tambah tag yang ditentukan (logika akumulasi, tag yang diatur sebelumnya tetap ada)
      *
      * @param context tidak boleh kosong
      * @param sequence Nomor urut operasi yang ditentukan pengguna, dikembalikan bersama hasil operasi
      * @param tags array tag, panjang setiap nama tag maks 40 byte, maks 1000 tag, panjang total satu operasi tidak boleh melebihi 5000 byte
      */
     public static void addTag(Context context, int sequence, String... tags)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

private static final int SEQUENCE_TAG_ADD = 1; MTPushPrivatesApi.addTag(context, SEQUENCE_TAG_ADD, "china", "guangdong", "shenzhen"); @Override public void onTagMessage(Context context, TagMessage tagMessage) { if (tagMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) { return; } if (tagMessage.getSequence() == SEQUENCE_TAG_ADD) { String[] tags = tagMessage.getTags(); } }
              
              private static final int SEQUENCE_TAG_ADD = 1;
MTPushPrivatesApi.addTag(context, SEQUENCE_TAG_ADD, "china", "guangdong", "shenzhen");

@Override
public void onTagMessage(Context context, TagMessage tagMessage) {
    if (tagMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) {
        return;
    }
    if (tagMessage.getSequence() == SEQUENCE_TAG_ADD) {
        String[] tags = tagMessage.getTags();
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

companion object { private const val SEQUENCE_TAG_ADD = 1 } MTPushPrivatesApi.addTag(context, SEQUENCE_TAG_ADD, "china", "guangdong", "shenzhen") override fun onTagMessage(context: Context, tagMessage: TagMessage) { if (tagMessage.code != MTPushPrivatesApi.Code.SUCCESS) { return } if (tagMessage.sequence == SEQUENCE_TAG_ADD) { val tags = tagMessage.tags } }
              
              companion object {
    private const val SEQUENCE_TAG_ADD = 1
}
MTPushPrivatesApi.addTag(context, SEQUENCE_TAG_ADD, "china", "guangdong", "shenzhen")

override fun onTagMessage(context: Context, tagMessage: TagMessage) {
    if (tagMessage.code != MTPushPrivatesApi.Code.SUCCESS) {
        return
    }
    if (tagMessage.sequence == SEQUENCE_TAG_ADD) {
        val tags = tagMessage.tags
    }
}

            
Tampilkan blok kode ini di jendela mengambang

deleteTag

  • Panggil init terlebih dahulu
  • Jika lingkungan tidak bermasalah, onTagMessage akan mengembalikan hasil
/** * Hapus tag yang ditentukan * * @param context tidak boleh kosong * @param sequence Nomor urut operasi yang ditentukan pengguna * @param tags array tag */ public static void deleteTag(Context context, int sequence, String... tags)
              
                   /**
      * Hapus tag yang ditentukan
      *
      * @param context tidak boleh kosong
      * @param sequence Nomor urut operasi yang ditentukan pengguna
      * @param tags array tag
      */
     public static void deleteTag(Context context, int sequence, String... tags)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

private static final int SEQUENCE_TAG_DELETE = 2; MTPushPrivatesApi.deleteTag(context, SEQUENCE_TAG_DELETE, "china", "guangdong", "shenzhen"); @Override public void onTagMessage(Context context, TagMessage tagMessage) { if (tagMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) { return; } if (tagMessage.getSequence() == SEQUENCE_TAG_DELETE) { String[] tags = tagMessage.getTags(); } }
              
              private static final int SEQUENCE_TAG_DELETE = 2;
MTPushPrivatesApi.deleteTag(context, SEQUENCE_TAG_DELETE, "china", "guangdong", "shenzhen");

@Override
public void onTagMessage(Context context, TagMessage tagMessage) {
    if (tagMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) {
        return;
    }
    if (tagMessage.getSequence() == SEQUENCE_TAG_DELETE) {
        String[] tags = tagMessage.getTags();
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

companion object { private const val SEQUENCE_TAG_DELETE = 2 } MTPushPrivatesApi.deleteTag(context, SEQUENCE_TAG_DELETE, "china", "guangdong", "shenzhen") override fun onTagMessage(context: Context, tagMessage: TagMessage) { if (tagMessage.code != MTPushPrivatesApi.Code.SUCCESS) { return } if (tagMessage.sequence == SEQUENCE_TAG_DELETE) { val tags = tagMessage.tags } }
              
              companion object {
    private const val SEQUENCE_TAG_DELETE = 2
}
MTPushPrivatesApi.deleteTag(context, SEQUENCE_TAG_DELETE, "china", "guangdong", "shenzhen")

override fun onTagMessage(context: Context, tagMessage: TagMessage) {
    if (tagMessage.code != MTPushPrivatesApi.Code.SUCCESS) {
        return
    }
    if (tagMessage.sequence == SEQUENCE_TAG_DELETE) {
        val tags = tagMessage.tags
    }
}

            
Tampilkan blok kode ini di jendela mengambang

updateTag

  • Panggil init terlebih dahulu
  • Jika lingkungan tidak bermasalah, onTagMessage akan mengembalikan hasil
/** * Perbarui tag yang ditentukan (logika timpa, tag yang ditambah sebelumnya akan dibersihkan) * * @param context tidak boleh kosong * @param sequence Nomor urut operasi yang ditentukan pengguna * @param tags array tag */ public static void updateTag(Context context, int sequence, String... tags)
              
                   /**
      * Perbarui tag yang ditentukan (logika timpa, tag yang ditambah sebelumnya akan dibersihkan)
      *
      * @param context tidak boleh kosong
      * @param sequence Nomor urut operasi yang ditentukan pengguna
      * @param tags array tag
      */
     public static void updateTag(Context context, int sequence, String... tags)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

private static final int SEQUENCE_TAG_UPDATE = 3; MTPushPrivatesApi.updateTag(context, SEQUENCE_TAG_UPDATE, "beijing", "shanghai", "guangzhou", "shenzhen"); @Override public void onTagMessage(Context context, TagMessage tagMessage) { if (tagMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) { return; } if (tagMessage.getSequence() == SEQUENCE_TAG_UPDATE) { String[] tags = tagMessage.getTags(); } }
              
              private static final int SEQUENCE_TAG_UPDATE = 3;
MTPushPrivatesApi.updateTag(context, SEQUENCE_TAG_UPDATE, "beijing", "shanghai", "guangzhou", "shenzhen");

@Override
public void onTagMessage(Context context, TagMessage tagMessage) {
    if (tagMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) {
        return;
    }
    if (tagMessage.getSequence() == SEQUENCE_TAG_UPDATE) {
        String[] tags = tagMessage.getTags();
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

companion object { private const val SEQUENCE_TAG_UPDATE = 3 } MTPushPrivatesApi.updateTag(context, SEQUENCE_TAG_UPDATE, "beijing", "shanghai", "guangzhou", "shenzhen") override fun onTagMessage(context: Context, tagMessage: TagMessage) { if (tagMessage.code != MTPushPrivatesApi.Code.SUCCESS) { return } if (tagMessage.sequence == SEQUENCE_TAG_UPDATE) { val tags = tagMessage.tags } }
              
              companion object {
    private const val SEQUENCE_TAG_UPDATE = 3
}
MTPushPrivatesApi.updateTag(context, SEQUENCE_TAG_UPDATE, "beijing", "shanghai", "guangzhou", "shenzhen")

override fun onTagMessage(context: Context, tagMessage: TagMessage) {
    if (tagMessage.code != MTPushPrivatesApi.Code.SUCCESS) {
        return
    }
    if (tagMessage.sequence == SEQUENCE_TAG_UPDATE) {
        val tags = tagMessage.tags
    }
}

            
Tampilkan blok kode ini di jendela mengambang

queryTag

  • Panggil init terlebih dahulu
  • Jika lingkungan tidak bermasalah, onTagMessage akan mengembalikan hasil
/** * Kueri tag yang ditentukan * * @param context tidak boleh kosong * @param sequence Nomor urut operasi yang ditentukan pengguna * @param tag panjang nama tag maks 40 byte */ public static void queryTag(Context context, int sequence, String tag)
              
                   /**
      * Kueri tag yang ditentukan
      *
      * @param context tidak boleh kosong
      * @param sequence Nomor urut operasi yang ditentukan pengguna
      * @param tag panjang nama tag maks 40 byte
      */
     public static void queryTag(Context context, int sequence, String tag)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

private static final int SEQUENCE_TAG_QUERY = 4; MTPushPrivatesApi.queryTag(context, SEQUENCE_TAG_QUERY, "china"); @Override public void onTagMessage(Context context, TagMessage tagMessage) { if (tagMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) { return; } if (tagMessage.getSequence() == SEQUENCE_TAG_QUERY) { String tag = tagMessage.getQueryTag(); boolean valid = tagMessage.isQueryTagValid(); } }
              
              private static final int SEQUENCE_TAG_QUERY = 4;
MTPushPrivatesApi.queryTag(context, SEQUENCE_TAG_QUERY, "china");

@Override
public void onTagMessage(Context context, TagMessage tagMessage) {
    if (tagMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) {
        return;
    }
    if (tagMessage.getSequence() == SEQUENCE_TAG_QUERY) {
        String tag = tagMessage.getQueryTag();
        boolean valid = tagMessage.isQueryTagValid();
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

companion object { private const val SEQUENCE_TAG_QUERY = 4 } MTPushPrivatesApi.queryTag(context, SEQUENCE_TAG_QUERY, "china") override fun onTagMessage(context: Context, tagMessage: TagMessage) { if (tagMessage.code != MTPushPrivatesApi.Code.SUCCESS) { return } if (tagMessage.sequence == SEQUENCE_TAG_QUERY) { val tag = tagMessage.queryTag val valid = tagMessage.isQueryTagValid } }
              
              companion object {
    private const val SEQUENCE_TAG_QUERY = 4
}
MTPushPrivatesApi.queryTag(context, SEQUENCE_TAG_QUERY, "china")

override fun onTagMessage(context: Context, tagMessage: TagMessage) {
    if (tagMessage.code != MTPushPrivatesApi.Code.SUCCESS) {
        return
    }
    if (tagMessage.sequence == SEQUENCE_TAG_QUERY) {
        val tag = tagMessage.queryTag
        val valid = tagMessage.isQueryTagValid
    }
}

            
Tampilkan blok kode ini di jendela mengambang

deleteAllTag

  • Panggil init terlebih dahulu
  • Jika lingkungan tidak bermasalah, onTagMessage akan mengembalikan hasil
/** * Hapus semua tag * * @param context tidak boleh kosong * @param sequence Nomor urut operasi yang ditentukan pengguna */ public static void deleteAllTag(Context context, int sequence, String... tags)
              
                   /**
      * Hapus semua tag
      *
      * @param context tidak boleh kosong
      * @param sequence Nomor urut operasi yang ditentukan pengguna
      */
     public static void deleteAllTag(Context context, int sequence, String... tags)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

private static final int SEQUENCE_TAG_DELETE_ALL = 5; MTPushPrivatesApi.deleteAllTag(context, SEQUENCE_TAG_DELETE_ALL); @Override public void onTagMessage(Context context, TagMessage tagMessage) { if (tagMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) { return; } if (tagMessage.getSequence() == SEQUENCE_TAG_DELETE_ALL) { // Semua tag berhasil dihapus } }
              
              private static final int SEQUENCE_TAG_DELETE_ALL = 5;
MTPushPrivatesApi.deleteAllTag(context, SEQUENCE_TAG_DELETE_ALL);

@Override
public void onTagMessage(Context context, TagMessage tagMessage) {
    if (tagMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) {
        return;
    }
    if (tagMessage.getSequence() == SEQUENCE_TAG_DELETE_ALL) {
        // Semua tag berhasil dihapus
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

companion object { private const val SEQUENCE_TAG_DELETE_ALL = 5 } MTPushPrivatesApi.deleteAllTag(context, SEQUENCE_TAG_DELETE_ALL) override fun onTagMessage(context: Context, tagMessage: TagMessage) { if (tagMessage.code != MTPushPrivatesApi.Code.SUCCESS) { return } if (tagMessage.sequence == SEQUENCE_TAG_DELETE_ALL) { // Semua tag berhasil dihapus } }
              
              companion object {
    private const val SEQUENCE_TAG_DELETE_ALL = 5
}
MTPushPrivatesApi.deleteAllTag(context, SEQUENCE_TAG_DELETE_ALL)

override fun onTagMessage(context: Context, tagMessage: TagMessage) {
    if (tagMessage.code != MTPushPrivatesApi.Code.SUCCESS) {
        return
    }
    if (tagMessage.sequence == SEQUENCE_TAG_DELETE_ALL) {
        // Semua tag berhasil dihapus
    }
}

            
Tampilkan blok kode ini di jendela mengambang

queryAllTag

  • Panggil init terlebih dahulu
  • Jika lingkungan tidak bermasalah, onTagMessage akan mengembalikan hasil
/** * Kueri semua tag * * @param context tidak boleh kosong * @param sequence Nomor urut operasi yang ditentukan pengguna */ public static void queryAllTag(Context context, int sequence, String... tags)
              
                   /**
      * Kueri semua tag
      *
      * @param context tidak boleh kosong
      * @param sequence Nomor urut operasi yang ditentukan pengguna
      */
     public static void queryAllTag(Context context, int sequence, String... tags)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

private static final int SEQUENCE_TAG_QUERY_ALL = 6; MTPushPrivatesApi.queryAllTag(context, SEQUENCE_TAG_QUERY_ALL); @Override public void onTagMessage(Context context, TagMessage tagMessage) { if (tagMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) { return; } if (tagMessage.getSequence() == SEQUENCE_TAG_QUERY_ALL) { String[] tags = tagMessage.getTags(); } }
              
              private static final int SEQUENCE_TAG_QUERY_ALL = 6;
MTPushPrivatesApi.queryAllTag(context, SEQUENCE_TAG_QUERY_ALL);

@Override
public void onTagMessage(Context context, TagMessage tagMessage) {
    if (tagMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) {
        return;
    }
    if (tagMessage.getSequence() == SEQUENCE_TAG_QUERY_ALL) {
        String[] tags = tagMessage.getTags();
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

companion object { private const val SEQUENCE_TAG_QUERY_ALL = 6 } MTPushPrivatesApi.queryAllTag(context, SEQUENCE_TAG_QUERY_ALL) override fun onTagMessage(context: Context, tagMessage: TagMessage) { if (tagMessage.code != MTPushPrivatesApi.Code.SUCCESS) { return } if (tagMessage.sequence == SEQUENCE_TAG_QUERY_ALL) { val tags = tagMessage.tags } }
              
              companion object {
    private const val SEQUENCE_TAG_QUERY_ALL = 6
}
MTPushPrivatesApi.queryAllTag(context, SEQUENCE_TAG_QUERY_ALL)

override fun onTagMessage(context: Context, tagMessage: TagMessage) {
    if (tagMessage.code != MTPushPrivatesApi.Code.SUCCESS) {
        return
    }
    if (tagMessage.sequence == SEQUENCE_TAG_QUERY_ALL) {
        val tags = tagMessage.tags
    }
}

            
Tampilkan blok kode ini di jendela mengambang

setAlias

  • Panggil init terlebih dahulu
  • Jika lingkungan tidak bermasalah, onAliasMessage akan mengembalikan hasil
/** * Atur alias * * @param context tidak boleh kosong * @param sequence Nomor urut operasi yang ditentukan pengguna * @param alias Alias valid: huruf, angka, garis bawah, karakter @!#$&*+=.|. Panjang maks 40 byte (UTF-8) */ public static void setAlias(Context context, int sequence, String alias)
              
                   /**
      * Atur alias
      *
      * @param context tidak boleh kosong
      * @param sequence Nomor urut operasi yang ditentukan pengguna
      * @param alias Alias valid: huruf, angka, garis bawah, karakter @!#$&*+=.|. Panjang maks 40 byte (UTF-8)
      */
     public static void setAlias(Context context, int sequence, String alias)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

private static final int SEQUENCE_ALIAS_SET = 7; MTPushPrivatesApi.setAlias(context, SEQUENCE_ALIAS_SET, "young"); @Override public void onAliasMessage(Context context, AliasMessage aliasMessage) { if (aliasMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) { return; } if (aliasMessage.getSequence() == SEQUENCE_ALIAS_SET) { String alias = aliasMessage.getAlias(); } }
              
              private static final int SEQUENCE_ALIAS_SET = 7;
MTPushPrivatesApi.setAlias(context, SEQUENCE_ALIAS_SET, "young");

@Override
public void onAliasMessage(Context context, AliasMessage aliasMessage) {
    if (aliasMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) {
        return;
    }
    if (aliasMessage.getSequence() == SEQUENCE_ALIAS_SET) {
        String alias = aliasMessage.getAlias();
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

companion object { private const val SEQUENCE_ALIAS_SET = 7 } MTPushPrivatesApi.setAlias(context, SEQUENCE_ALIAS_SET, "young") override fun onAliasMessage(context: Context, aliasMessage: AliasMessage) { if (aliasMessage.code != MTPushPrivatesApi.Code.SUCCESS) { return } if (aliasMessage.sequence == SEQUENCE_ALIAS_SET) { val alias = aliasMessage.alias } }
              
              companion object {
    private const val SEQUENCE_ALIAS_SET = 7
}
MTPushPrivatesApi.setAlias(context, SEQUENCE_ALIAS_SET, "young")

override fun onAliasMessage(context: Context, aliasMessage: AliasMessage) {
    if (aliasMessage.code != MTPushPrivatesApi.Code.SUCCESS) {
        return
    }
    if (aliasMessage.sequence == SEQUENCE_ALIAS_SET) {
        val alias = aliasMessage.alias
    }
}

            
Tampilkan blok kode ini di jendela mengambang

getAlias

  • Panggil init terlebih dahulu
  • Jika lingkungan tidak bermasalah, onAliasMessage akan mengembalikan hasil
/** * Dapatkan alias * * @param context tidak boleh kosong * @param sequence Nomor urut operasi yang ditentukan pengguna */ public static void getAlias(Context context, int sequence)
              
                   /**
      * Dapatkan alias
      *
      * @param context tidak boleh kosong
      * @param sequence Nomor urut operasi yang ditentukan pengguna
      */
     public static void getAlias(Context context, int sequence)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

private static final int SEQUENCE_ALIAS_GET = 8; MTPushPrivatesApi.getAlias(context, SEQUENCE_ALIAS_GET); @Override public void onAliasMessage(Context context, AliasMessage aliasMessage) { if (aliasMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) { return; } if (aliasMessage.getSequence() == SEQUENCE_ALIAS_GET) { String alias = aliasMessage.getAlias(); } }
              
              private static final int SEQUENCE_ALIAS_GET = 8;
MTPushPrivatesApi.getAlias(context, SEQUENCE_ALIAS_GET);

@Override
public void onAliasMessage(Context context, AliasMessage aliasMessage) {
    if (aliasMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) {
        return;
    }
    if (aliasMessage.getSequence() == SEQUENCE_ALIAS_GET) {
        String alias = aliasMessage.getAlias();
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

companion object { private const val SEQUENCE_ALIAS_GET = 8 } MTPushPrivatesApi.getAlias(context, SEQUENCE_ALIAS_GET) override fun onAliasMessage(context: Context, aliasMessage: AliasMessage) { if (aliasMessage.code != MTPushPrivatesApi.Code.SUCCESS) { return } if (aliasMessage.sequence == SEQUENCE_ALIAS_GET) { val alias = aliasMessage.alias } }
              
              companion object {
    private const val SEQUENCE_ALIAS_GET = 8
}
MTPushPrivatesApi.getAlias(context, SEQUENCE_ALIAS_GET)

override fun onAliasMessage(context: Context, aliasMessage: AliasMessage) {
    if (aliasMessage.code != MTPushPrivatesApi.Code.SUCCESS) {
        return
    }
    if (aliasMessage.sequence == SEQUENCE_ALIAS_GET) {
        val alias = aliasMessage.alias
    }
}

            
Tampilkan blok kode ini di jendela mengambang

clearAlias

  • Panggil init terlebih dahulu
  • Jika lingkungan tidak bermasalah, onAliasMessage akan mengembalikan hasil
/** * Hapus alias * * @param context tidak boleh kosong * @param sequence Nomor urut operasi yang ditentukan pengguna */ public static void clearAlias(Context context, int sequence)
              
                   /**
      * Hapus alias
      *
      * @param context tidak boleh kosong
      * @param sequence Nomor urut operasi yang ditentukan pengguna
      */
     public static void clearAlias(Context context, int sequence)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

private static final int SEQUENCE_ALIAS_CLEAR = 9; MTPushPrivatesApi.clearAlias(context, SEQUENCE_ALIAS_CLEAR); @Override public void onAliasMessage(Context context, AliasMessage aliasMessage) { if (aliasMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) { return; } if (aliasMessage.getSequence() == SEQUENCE_ALIAS_CLEAR) { // Alias berhasil dihapus } }
              
              private static final int SEQUENCE_ALIAS_CLEAR = 9;
MTPushPrivatesApi.clearAlias(context, SEQUENCE_ALIAS_CLEAR);

@Override
public void onAliasMessage(Context context, AliasMessage aliasMessage) {
    if (aliasMessage.getCode() != MTPushPrivatesApi.Code.SUCCESS) {
        return;
    }
    if (aliasMessage.getSequence() == SEQUENCE_ALIAS_CLEAR) {
        // Alias berhasil dihapus
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

companion object { private const val SEQUENCE_ALIAS_CLEAR = 9 } MTPushPrivatesApi.clearAlias(context, SEQUENCE_ALIAS_CLEAR) override fun onAliasMessage(context: Context, aliasMessage: AliasMessage) { if (aliasMessage.code != MTPushPrivatesApi.Code.SUCCESS) { return } if (aliasMessage.sequence == SEQUENCE_ALIAS_CLEAR) { // Alias berhasil dihapus } }
              
              companion object {
    private const val SEQUENCE_ALIAS_CLEAR = 9
}
MTPushPrivatesApi.clearAlias(context, SEQUENCE_ALIAS_CLEAR)

override fun onAliasMessage(context: Context, aliasMessage: AliasMessage) {
    if (aliasMessage.code != MTPushPrivatesApi.Code.SUCCESS) {
        return
    }
    if (aliasMessage.sequence == SEQUENCE_ALIAS_CLEAR) {
        // Alias berhasil dihapus
    }
}

            
Tampilkan blok kode ini di jendela mengambang

setNotificationShowTime

  • Panggil init terlebih dahulu
  • Channel yang didukung: channel Engagelab / channel Google saat app di foreground
/** * Atur waktu tampil notifikasi; default tampil kapan saja * * @param context tidak boleh kosong * @param beginHour Waktu mulai (format 24 jam, 0-23) * @param endHour Waktu selesai (format 24 jam, 0-23); beginHour tidak boleh >= endHour * @param weekDays Array hari dalam seminggu (1-7); array kosong = tidak tampil */ public static void setNotificationShowTime(Context context, int beginHour, int endHour, int... weekDays)
              
                   /**
      * Atur waktu tampil notifikasi; default tampil kapan saja
      *
      * @param context tidak boleh kosong
      * @param beginHour Waktu mulai (format 24 jam, 0-23)
      * @param endHour Waktu selesai (format 24 jam, 0-23); beginHour tidak boleh >= endHour
      * @param weekDays Array hari dalam seminggu (1-7); array kosong = tidak tampil
      */
     public static void setNotificationShowTime(Context context, int beginHour, int endHour, int... weekDays)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.setNotificationShowTime(context, 9, 21, 1, 3, 5, 7);
              
                   MTPushPrivatesApi.setNotificationShowTime(context, 9, 21, 1, 3, 5, 7);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.setNotificationShowTime(context, 9, 21, 1, 3, 5, 7)
              
                   MTPushPrivatesApi.setNotificationShowTime(context, 9, 21, 1, 3, 5, 7)

            
Tampilkan blok kode ini di jendela mengambang

resetNotificationShowTime

  • Panggil init terlebih dahulu
/** * Atur ulang waktu tampil notifikasi; default tampil kapan saja * * @param context tidak boleh kosong */ public static void resetNotificationShowTime(Context context)
              
                   /**
      * Atur ulang waktu tampil notifikasi; default tampil kapan saja
      *
      * @param context tidak boleh kosong
      */
     public static void resetNotificationShowTime(Context context)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.resetNotificationShowTime(context);
              
                   MTPushPrivatesApi.resetNotificationShowTime(context);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.resetNotificationShowTime(context)
              
                   MTPushPrivatesApi.resetNotificationShowTime(context)

            
Tampilkan blok kode ini di jendela mengambang

setNotificationSilenceTime

  • Panggil init terlebih dahulu
/** * Atur waktu hening notifikasi; default tidak hening * * @param context tidak boleh kosong * @param beginHour, beginMinute, endHour, endMinute Waktu hening (format 24 jam) */ public static void setNotificationSilenceTime(Context context, int beginHour, int beginMinute, int endHour, int endMinute)
              
                   /**
      * Atur waktu hening notifikasi; default tidak hening
      *
      * @param context tidak boleh kosong
      * @param beginHour, beginMinute, endHour, endMinute Waktu hening (format 24 jam)
      */
     public static void setNotificationSilenceTime(Context context, int beginHour, int beginMinute, int endHour, int endMinute)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.setNotificationSilenceTime(context, 21, 30, 9, 30);
              
                   MTPushPrivatesApi.setNotificationSilenceTime(context, 21, 30, 9, 30);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.setNotificationSilenceTime(context, 21, 30, 9, 30)
              
                   MTPushPrivatesApi.setNotificationSilenceTime(context, 21, 30, 9, 30)

            
Tampilkan blok kode ini di jendela mengambang

resetNotificationSilenceTime

  • Panggil init terlebih dahulu
/** * Atur ulang waktu hening notifikasi * * @param context tidak boleh kosong */ public static void resetNotificationSilenceTime(Context context)
              
                   /**
      * Atur ulang waktu hening notifikasi
      *
      * @param context tidak boleh kosong
      */
     public static void resetNotificationSilenceTime(Context context)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.resetNotificationSilenceTime(context);
              
                   MTPushPrivatesApi.resetNotificationSilenceTime(context);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.resetNotificationSilenceTime(context)
              
                   MTPushPrivatesApi.resetNotificationSilenceTime(context)

            
Tampilkan blok kode ini di jendela mengambang

setNotificationLayout

  • Panggil init terlebih dahulu
  • Channel yang didukung: Engagelab
/** * Atur layout notifikasi kustom; default pakai layout sistem * * @param context tidak boleh kosong * @param builderId id build * @param notificationLayout Objek layout kustom, tidak boleh kosong */ public static void setNotificationLayout(Context context, int builderId, NotificationLayout notificationLayout)
              
                   /**
      * Atur layout notifikasi kustom; default pakai layout sistem
      *
      * @param context tidak boleh kosong
      * @param builderId id build
      * @param notificationLayout Objek layout kustom, tidak boleh kosong
      */
     public static void setNotificationLayout(Context context, int builderId, NotificationLayout notificationLayout)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

private static final int BUILDER_ID = 11; NotificationLayout notificationLayout = new NotificationLayout() .setLayoutId(R.layout.custom_notification_layout) .setIconViewId(R.id.iv_notification_icon) .setIconResourceId(R.drawable.mtpush_notification_icon) .setTitleViewId(R.id.tv_notification_title) .setContentViewId(R.id.tv_notification_content) .setTimeViewId(R.id.tv_notification_time); MTPushPrivatesApi.setNotificationLayout(this.getApplicationContext(), BUILDER_ID, notificationLayout);
              
              private static final int BUILDER_ID = 11;
NotificationLayout notificationLayout = new NotificationLayout()
        .setLayoutId(R.layout.custom_notification_layout)
        .setIconViewId(R.id.iv_notification_icon)
        .setIconResourceId(R.drawable.mtpush_notification_icon)
        .setTitleViewId(R.id.tv_notification_title)
        .setContentViewId(R.id.tv_notification_content)
        .setTimeViewId(R.id.tv_notification_time);
MTPushPrivatesApi.setNotificationLayout(this.getApplicationContext(), BUILDER_ID, notificationLayout);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

companion object { private const val BUILDER_ID = 11 } val notificationLayout = NotificationLayout() .setLayoutId(R.layout.custom_notification_layout) .setIconViewId(R.id.iv_notification_icon) .setIconResourceId(R.drawable.mtpush_notification_icon) .setTitleViewId(R.id.tv_notification_title) .setContentViewId(R.id.tv_notification_content) .setTimeViewId(R.id.tv_notification_time) MTPushPrivatesApi.setNotificationLayout(applicationContext, BUILDER_ID, notificationLayout)
              
              companion object {
    private const val BUILDER_ID = 11
}
val notificationLayout = NotificationLayout()
    .setLayoutId(R.layout.custom_notification_layout)
    .setIconViewId(R.id.iv_notification_icon)
    .setIconResourceId(R.drawable.mtpush_notification_icon)
    .setTitleViewId(R.id.tv_notification_title)
    .setContentViewId(R.id.tv_notification_content)
    .setTimeViewId(R.id.tv_notification_time)
MTPushPrivatesApi.setNotificationLayout(applicationContext, BUILDER_ID, notificationLayout)

            
Tampilkan blok kode ini di jendela mengambang

resetNotificationLayout

  • Panggil init terlebih dahulu
/** * Atur ulang layout notifikasi kustom; default pakai layout sistem * * @param context tidak boleh kosong * @param builderId id layout kustom */ public static void resetNotificationLayout(Context context, int builderId)
              
                   /**
      * Atur ulang layout notifikasi kustom; default pakai layout sistem
      *
      * @param context tidak boleh kosong
      * @param builderId id layout kustom
      */
     public static void resetNotificationLayout(Context context, int builderId)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

private static final int BUILDER_ID = 11; MTPushPrivatesApi.resetNotificationLayout(context, BUILDER_ID);
              
              private static final int BUILDER_ID = 11;
MTPushPrivatesApi.resetNotificationLayout(context, BUILDER_ID);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

companion object { private const val BUILDER_ID = 11 } MTPushPrivatesApi.resetNotificationLayout(context, BUILDER_ID)
              
              companion object {
    private const val BUILDER_ID = 11
}
MTPushPrivatesApi.resetNotificationLayout(context, BUILDER_ID)

            
Tampilkan blok kode ini di jendela mengambang

setNotificationCount

  • Panggil init terlebih dahulu
/** * Atur jumlah notifikasi di bar notifikasi; default 5 * * @param context tidak boleh kosong * @param count Batas jumlah notifikasi; jika terlampaui, notifikasi terlama dihapus. Tidak boleh <= 0 */ public static void setNotificationCount(Context context, int count)
              
                   /**
      * Atur jumlah notifikasi di bar notifikasi; default 5
      *
      * @param context tidak boleh kosong
      * @param count Batas jumlah notifikasi; jika terlampaui, notifikasi terlama dihapus. Tidak boleh <= 0
      */
     public static void setNotificationCount(Context context, int count)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.setNotificationCount(context, 50);
              
                   MTPushPrivatesApi.setNotificationCount(context, 50);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.setNotificationCount(context, 50)
              
                   MTPushPrivatesApi.setNotificationCount(context, 50)

            
Tampilkan blok kode ini di jendela mengambang

resetNotificationCount

  • Panggil init terlebih dahulu
/** * Atur ulang jumlah notifikasi di bar; default 5 * * @param context tidak boleh kosong */ public static void resetNotificationCount(Context context)
              
                   /**
      * Atur ulang jumlah notifikasi di bar; default 5
      *
      * @param context tidak boleh kosong
      */
     public static void resetNotificationCount(Context context)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.resetNotificationCount(context);
              
                   MTPushPrivatesApi.resetNotificationCount(context);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.resetNotificationCount(context)
              
                   MTPushPrivatesApi.resetNotificationCount(context)

            
Tampilkan blok kode ini di jendela mengambang

setNotificationBadge

  • Panggil init terlebih dahulu
  • Hanya berlaku untuk Huawei/Honor
/** * Atur jumlah badge aplikasi; default 0 * * @param context tidak boleh kosong * @param badge Jumlah badge */ public static void setNotificationBadge(Context context, int badge)
              
                   /**
      * Atur jumlah badge aplikasi; default 0
      *
      * @param context tidak boleh kosong
      * @param badge Jumlah badge
      */
     public static void setNotificationBadge(Context context, int badge)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.setNotificationBadge(context, 1);
              
                   MTPushPrivatesApi.setNotificationBadge(context, 1);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.setNotificationBadge(context, 1)
              
                   MTPushPrivatesApi.setNotificationBadge(context, 1)

            
Tampilkan blok kode ini di jendela mengambang

resetNotificationBadge

  • Panggil init terlebih dahulu
/** * Atur ulang jumlah badge aplikasi; default 0 * * @param context tidak boleh kosong */ public static void resetNotificationBadge(Context context)
              
                   /**
      * Atur ulang jumlah badge aplikasi; default 0
      *
      * @param context tidak boleh kosong
      */
     public static void resetNotificationBadge(Context context)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.resetNotificationBadge(context);
              
                   MTPushPrivatesApi.resetNotificationBadge(context);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.resetNotificationBadge(context)
              
                   MTPushPrivatesApi.resetNotificationBadge(context)

            
Tampilkan blok kode ini di jendela mengambang

showNotification

  • Panggil init terlebih dahulu
/** * Tampilkan notifikasi * * @param context tidak boleh kosong * @param notificationMessage Objek notifikasi yang dibangun, tidak boleh kosong */ public static void showNotification(Context context, NotificationMessage notificationMessage)
              
                   /**
      * Tampilkan notifikasi
      *
      * @param context tidak boleh kosong
      * @param notificationMessage Objek notifikasi yang dibangun, tidak boleh kosong
      */
     public static void showNotification(Context context, NotificationMessage notificationMessage)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

NotificationMessage notificationMessage = new NotificationMessage() .setMessageId("12345") .setNotificationId(12345) .setTitle("custom_notification_title") .setContent("custom_notification_content"); MTPushPrivatesApi.showNotification(context, notificationMessage);
              
                   NotificationMessage notificationMessage = new NotificationMessage()
             .setMessageId("12345")
             .setNotificationId(12345)
             .setTitle("custom_notification_title")
             .setContent("custom_notification_content");
     MTPushPrivatesApi.showNotification(context, notificationMessage);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

val notificationMessage = NotificationMessage() .setMessageId("12345") .setNotificationId(12345) .setTitle("custom_notification_title") .setContent("custom_notification_content") MTPushPrivatesApi.showNotification(context, notificationMessage)
              
                   val notificationMessage = NotificationMessage()
         .setMessageId("12345")
         .setNotificationId(12345)
         .setTitle("custom_notification_title")
         .setContent("custom_notification_content")
     MTPushPrivatesApi.showNotification(context, notificationMessage)

            
Tampilkan blok kode ini di jendela mengambang

clearNotification

  • Panggil init terlebih dahulu
/** * Hapus notifikasi dengan notifyId yang ditentukan * * @param context tidak boleh kosong * @param notifyId id notifikasi */ public static void clearNotification(Context context, int notifyId)
              
                   /**
      * Hapus notifikasi dengan notifyId yang ditentukan
      *
      * @param context tidak boleh kosong
      * @param notifyId id notifikasi
      */
     public static void clearNotification(Context context, int notifyId)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.clearNotification(context, 12345);
              
                   MTPushPrivatesApi.clearNotification(context, 12345);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.clearNotification(context, 12345)
              
                   MTPushPrivatesApi.clearNotification(context, 12345)

            
Tampilkan blok kode ini di jendela mengambang

reportNotificationArrived

  • Panggil init terlebih dahulu
  • Jika tidak mengintegrasikan paket vendor EngageLab tetapi perlu EngageLab menghitung tingkat pengiriman, panggil antarmuka ini
/** * Laporkan kedatangan notifikasi channel vendor (via http/https) * * @param context tidak boleh kosong * @param messageId ID pesan Engagelab, tidak boleh kosong * @param platform vendor (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param platformMessageId ID pesan vendor, boleh kosong */ public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)
              
                   /**
      * Laporkan kedatangan notifikasi channel vendor (via http/https)
      *
      * @param context tidak boleh kosong
      * @param messageId ID pesan Engagelab, tidak boleh kosong
      * @param platform vendor (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
      * @param platformMessageId ID pesan vendor, boleh kosong
      */
     public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.reportNotificationArrived(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25");
              
                   MTPushPrivatesApi.reportNotificationArrived(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25");

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.reportNotificationArrived(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25")
              
                   MTPushPrivatesApi.reportNotificationArrived(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25")

            
Tampilkan blok kode ini di jendela mengambang

reportNotificationClicked

  • Panggil init terlebih dahulu
  • Jika tidak mengintegrasikan paket vendor tetapi perlu EngageLab menghitung tingkat klik, panggil antarmuka ini
/** * Laporkan klik notifikasi channel vendor (via http/https) * * @param context tidak boleh kosong * @param messageId ID pesan Engagelab, tidak boleh kosong * @param platform vendor * @param platformMessageId ID pesan vendor, boleh kosong */ public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)
              
                   /**
      * Laporkan klik notifikasi channel vendor (via http/https)
      *
      * @param context tidak boleh kosong
      * @param messageId ID pesan Engagelab, tidak boleh kosong
      * @param platform vendor
      * @param platformMessageId ID pesan vendor, boleh kosong
      */
     public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.reportNotificationClicked(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25");
              
                   MTPushPrivatesApi.reportNotificationClicked(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25");

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.reportNotificationClicked(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25")
              
                   MTPushPrivatesApi.reportNotificationClicked(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25")

            
Tampilkan blok kode ini di jendela mengambang

reportNotificationDeleted

  • Panggil init terlebih dahulu
  • Jika tidak mengintegrasikan paket vendor tetapi perlu EngageLab menghitung tingkat penghapusan, panggil antarmuka ini
/** * Laporkan penghapusan notifikasi channel vendor (via http/https) * * @param context tidak boleh kosong * @param messageId ID pesan Engagelab, tidak boleh kosong * @param platform vendor * @param platformMessageId ID pesan vendor, boleh kosong */ public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)
              
                   /**
      * Laporkan penghapusan notifikasi channel vendor (via http/https)
      *
      * @param context tidak boleh kosong
      * @param messageId ID pesan Engagelab, tidak boleh kosong
      * @param platform vendor
      * @param platformMessageId ID pesan vendor, boleh kosong
      */
     public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.reportNotificationDeleted(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25");
              
                   MTPushPrivatesApi.reportNotificationDeleted(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25");

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.reportNotificationDeleted(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25")
              
                   MTPushPrivatesApi.reportNotificationDeleted(context, "12345", MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476RHT25")

            
Tampilkan blok kode ini di jendela mengambang

reportNotificationOpened

  • Panggil init terlebih dahulu
  • Jika tidak mengintegrasikan paket vendor EngageLab tetapi perlu EngageLab menghitung tingkat pembukaan notifikasi, panggil antarmuka ini
  • Beberapa vendor (mis: huawei/oppo/vivo) tidak punya callback kedatangan dan klik. Setelah mengatur Activity tujuan saat notifikasi diklik, parameter bisa didapat di Activity tujuan. Disarankan mengatur Activity lompatan klik untuk semua vendor.
  • Tidak diperlukan untuk MTPush 4.0.0 ke atas
/** * Laporkan pembukaan notifikasi channel vendor * * Dilaporkan via http/https * * @param context tidak boleh kosong * @param messageId ID pesan Engagelab, tidak boleh kosong * @param platform vendor (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param platformMessageId ID pesan vendor, boleh kosong */ public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)
              
                   /**
      * Laporkan pembukaan notifikasi channel vendor
      *
      * Dilaporkan via http/https
      *
      * @param context tidak boleh kosong
      * @param messageId ID pesan Engagelab, tidak boleh kosong
      * @param platform vendor (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
      * @param platformMessageId ID pesan vendor, boleh kosong
      */
     public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

Bundle bundle = intent.getExtras(); String platformMessage = ""; if (intent.getData() != null) { platformMessage = intent.getData().toString(); } if (TextUtils.isEmpty(platformMessage) && intent.getExtras() != null) { if (bundle.containsKey("JMessageExtra")) { platformMessage = bundle.getString("JMessageExtra"); } else { platformMessage = bundle.getString("MTMessageExtra"); } } if (TextUtils.isEmpty(platformMessage)) { return; } JSONObject messageJson = new JSONObject(platformMessage); tvMessage.setText(toLogString(messageJson)); String messageId = messageJson.optString("msg_id"); byte platform = (byte) messageJson.optInt("rom_type"); String title = messageJson.optString("n_title"); String content = messageJson.optString("n_content"); MTPushPrivatesApi.reportNotificationOpened(this, messageId, platform, "");
              
                   Bundle bundle = intent.getExtras();
     String platformMessage = "";
     if (intent.getData() != null) {
         platformMessage = intent.getData().toString();
     }
     if (TextUtils.isEmpty(platformMessage) && intent.getExtras() != null) {
         if (bundle.containsKey("JMessageExtra")) {
              platformMessage = bundle.getString("JMessageExtra");
         } else {
              platformMessage = bundle.getString("MTMessageExtra");
         }
     }
     if (TextUtils.isEmpty(platformMessage)) {
         return;
     }
     JSONObject messageJson = new JSONObject(platformMessage);
     tvMessage.setText(toLogString(messageJson));
     String messageId = messageJson.optString("msg_id");
     byte platform = (byte) messageJson.optInt("rom_type");
     String title = messageJson.optString("n_title");
     String content = messageJson.optString("n_content");
     MTPushPrivatesApi.reportNotificationOpened(this, messageId, platform, "");

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

val bundle = intent.extras var platformMessage = "" if (intent.data != null) { platformMessage = intent.data!!.toString() } if (TextUtils.isEmpty(platformMessage) && intent.extras != null) { bundle?.let { if (it.containsKey("JMessageExtra")) { platformMessage = it.getString("JMessageExtra", "") } else { platformMessage = it.getString("MTMessageExtra", "") } } } if (TextUtils.isEmpty(platformMessage)) { return } val messageJson = JSONObject(platformMessage) tvMessage.setText(toLogString(messageJson)) val messageId = messageJson.optString("msg_id") val platform = messageJson.optInt("rom_type").toByte() val title = messageJson.optString("n_title") val content = messageJson.optString("n_content") MTPushPrivatesApi.reportNotificationOpened(this, messageId, platform, "")
              
                   val bundle = intent.extras
     var platformMessage = ""
     if (intent.data != null) {
         platformMessage = intent.data!!.toString()
     }
     if (TextUtils.isEmpty(platformMessage) && intent.extras != null) {
         bundle?.let {
             if (it.containsKey("JMessageExtra")) {
                 platformMessage = it.getString("JMessageExtra", "")
             } else {
                 platformMessage = it.getString("MTMessageExtra", "")
             }
         }
     }
     if (TextUtils.isEmpty(platformMessage)) {
         return
     }
     val messageJson = JSONObject(platformMessage)
     tvMessage.setText(toLogString(messageJson))
     val messageId = messageJson.optString("msg_id")
     val platform = messageJson.optInt("rom_type").toByte()
     val title = messageJson.optString("n_title")
     val content = messageJson.optString("n_content")
     MTPushPrivatesApi.reportNotificationOpened(this, messageId, platform, "")

            
Tampilkan blok kode ini di jendela mengambang

uploadPlatformToken

  • Panggil init terlebih dahulu
  • Upload via TCP; koneksi panjang harus berhasil, yaitu onConnectStatus mengembalikan true sebelum memanggil
  • Tidak mengintegrasikan paket vendor EngageLab, tetapi EngageLab diperlukan untuk mengirim pesan vendor
/** * Unggah token vendor (via TCP) * * @param context tidak boleh kosong * @param platform vendor (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param token Token yang dikembalikan vendor, tidak boleh kosong * @param region Versi luar negeri Xiaomi dan Oppo: "GLOBAL"; bukan luar negeri: "NULL" */ public static void uploadPlatformToken(Context context, byte platform, String token, String region)
              
                   /**
      * Unggah token vendor (via TCP)
      *
      * @param context tidak boleh kosong
      * @param platform vendor (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
      * @param token Token yang dikembalikan vendor, tidak boleh kosong
      * @param region Versi luar negeri Xiaomi dan Oppo: "GLOBAL"; bukan luar negeri: "NULL"
      */
     public static void uploadPlatformToken(Context context, byte platform, String token, String region)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.uploadPlatformToken(context, MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476s-afs-afs-afaR-HT25", "NULL");
              
                   MTPushPrivatesApi.uploadPlatformToken(context, MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476s-afs-afs-afaR-HT25", "NULL");

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.uploadPlatformToken(context, MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476s-afs-afs-afaR-HT25", "NULL")
              
                   MTPushPrivatesApi.uploadPlatformToken(context, MTPushPrivatesApi.PLATFORM_XIAOMI, "MI-6476s-afs-afs-afaR-HT25", "NULL")

            
Tampilkan blok kode ini di jendela mengambang

clearPlatformToken

  • Panggil init terlebih dahulu
  • Upload via TCP; panggil antarmuka ini setelah koneksi panjang berhasil (onConnectStatus mengembalikan true)
  • Tidak mengintegrasikan paket vendor EngageLab, tetapi EngageLab diperlukan untuk mengirim pesan vendor
/** * Hapus token. Setelah memanggil antarmuka ini, token hanya dapat dilaporkan melalui uploadPlatformToken; SDK tidak lagi mengambil atau melaporkan token secara aktif; direset setelah cold start. * Dengar melalui callback onPlatformToken. Jika platform callback -128, berarti penghapusan berhasil. * * Diperlukan koneksi TCP. * @param context tidak boleh kosong */ public static void clearPlatformToken(Context context)
              
                  /**
     * Hapus token. Setelah memanggil antarmuka ini, token hanya dapat dilaporkan melalui uploadPlatformToken; SDK tidak lagi mengambil atau melaporkan token secara aktif; direset setelah cold start.
     * Dengar melalui callback onPlatformToken. Jika platform callback -128, berarti penghapusan berhasil.
     *
     * Diperlukan koneksi TCP.
     * @param context tidak boleh kosong
     */
    public static void clearPlatformToken(Context context)

            
Tampilkan blok kode ini di jendela mengambang

Contoh kode:

Java:

MTPushPrivatesApi.clearPlatformToken(context);
              
                  MTPushPrivatesApi.clearPlatformToken(context);

            
Tampilkan blok kode ini di jendela mengambang

Kotlin:

MTPushPrivatesApi.clearPlatformToken(context)
              
                  MTPushPrivatesApi.clearPlatformToken(context)

            
Tampilkan blok kode ini di jendela mengambang

onFragmentResume

  • Panggil init terlebih dahulu; jika tidak pemanggilan tidak valid.
/** * @param context Tidak null * @param fragmentName Nama kelas lengkap Fragment (this.getClass().getCanonicalName()) */ public static void onFragmentResume(Context context, String fragmentName)
              
              /**
 * @param context      Tidak null
 * @param fragmentName Nama kelas lengkap Fragment (this.getClass().getCanonicalName())
 */
public static void onFragmentResume(Context context, String fragmentName)

            
Tampilkan blok kode ini di jendela mengambang

onFragmentPause

  • Panggil init terlebih dahulu; jika tidak pemanggilan tidak valid.
/** * @param context Tidak null * @param fragmentName Nama kelas lengkap Fragment (this.getClass().getCanonicalName()) */ public static void onFragmentPause(Context context, String fragmentName)
              
              /**
 * @param context      Tidak null
 * @param fragmentName Nama kelas lengkap Fragment (this.getClass().getCanonicalName())
 */
public static void onFragmentPause(Context context, String fragmentName)

            
Tampilkan blok kode ini di jendela mengambang

Petunjuk penggunaan: Ada empat cara menambahkan Fragment di Android; setiap metode memerlukan penanganan berbeda. Di bawah ini penjelasan kontrol tampilan in-app untuk Fragment yang ditentukan.

Metode penggunaan Fragment Dapat mendengarkan siklus hidup Fragment? Metode pemanggilan antarmuka halaman tampilan dinamis JPush
Metode 1: add/show/hide Tidak dapat mendengarkan siklus hidup Panggil onFragmentResume dan onHiddenChanged di Fragment
Metode 2: ViewPager Tidak dapat mendengarkan siklus hidup Panggil setUserVisibleHint di Fragment
Metode 3: replace Dapat mendengarkan siklus hidup Panggil onResume dan onPause di Fragment
Metode 4: attach/detach Dapat mendengarkan siklus hidup Panggil onResume dan onPause di Fragment
  • Metode 1: add/show/hide

    1) Panggil antarmuka kontrol dinamis di callback onCreateView Fragment. @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { String classname = this.getClass().getCanonicalName(); MTPushPrivatesApi.onFragmentResume(MyApplication.gContext, classname); return inflater.inflate(R.layout.black_fragment, container, false); } 2) Panggil antarmuka di callback onHiddenChanged Fragment. @Override public void onHiddenChanged(boolean hidden) { String classname = this.getClass().getCanonicalName(); if (!hidden) { MTPushPrivatesApi.onFragmentResume(MyApplication.gContext, classname); } else { MTPushPrivatesApi.onFragmentPause(MyApplication.gContext, classname); } super.onHiddenChanged(hidden); }
                  
                  1) Panggil antarmuka kontrol dinamis di callback onCreateView Fragment.
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        String classname = this.getClass().getCanonicalName();
        MTPushPrivatesApi.onFragmentResume(MyApplication.gContext, classname);
        return inflater.inflate(R.layout.black_fragment, container, false);
    }
    
    2) Panggil antarmuka di callback onHiddenChanged Fragment.
    
    @Override
    public void onHiddenChanged(boolean hidden) {
        String classname = this.getClass().getCanonicalName();
        if (!hidden) {
            MTPushPrivatesApi.onFragmentResume(MyApplication.gContext, classname);
        } else {
            MTPushPrivatesApi.onFragmentPause(MyApplication.gContext, classname);
        }
        super.onHiddenChanged(hidden);
    }
    
                
    Tampilkan blok kode ini di jendela mengambang
  • Metode ViewPager

    1) Panggil antarmuka di callback setUserVisibleHint Fragment. @Override public void setUserVisibleHint(boolean isVisibleToUser) { String classname = this.getClass().getCanonicalName(); if (isVisibleToUser) { MTPushPrivatesApi.onFragmentResume(MyApplication.gContext, classname); } else { MTPushPrivatesApi.onFragmentPause(MyApplication.gContext, classname); } super.setUserVisibleHint(isVisibleToUser); }
                  
                  1) Panggil antarmuka di callback setUserVisibleHint Fragment.
    
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        String classname = this.getClass().getCanonicalName();
        if (isVisibleToUser) {
            MTPushPrivatesApi.onFragmentResume(MyApplication.gContext, classname);
        } else {
            MTPushPrivatesApi.onFragmentPause(MyApplication.gContext, classname);
        }
        super.setUserVisibleHint(isVisibleToUser);
    }
    
                
    Tampilkan blok kode ini di jendela mengambang
  • Metode replace atau attach/detach

    Panggil antarmuka di callback siklus hidup Fragment (onResume/onPause). @Override public void onResume() { String classname = this.getClass().getCanonicalName(); MTPushPrivatesApi.onFragmentResume(MyApplication.gContext, classname); super.onResume(); } @Override public void onPause() { String classname = this.getClass().getCanonicalName(); MTPushPrivatesApi.onFragmentPause(MyApplication.gContext, classname); super.onPause(); }
                  
                  Panggil antarmuka di callback siklus hidup Fragment (onResume/onPause).
    
    @Override
    public void onResume() {
        String classname = this.getClass().getCanonicalName();
        MTPushPrivatesApi.onFragmentResume(MyApplication.gContext, classname);
        super.onResume();
    }
    
    @Override
    public void onPause() {
        String classname = this.getClass().getCanonicalName();
        MTPushPrivatesApi.onFragmentPause(MyApplication.gContext, classname);
        super.onPause();
    }
    
                
    Tampilkan blok kode ini di jendela mengambang

MTCommonReceiver

  • Digunakan terutama untuk callback metode
  • Semua callback di kelas ini berjalan di proses utama

onNotificationStatus

  • Setiap kali SDK dijalankan, status sakelar notifikasi saat ini akan dikembalikan
  • Hanya dipanggil saat status sakelar notifikasi berubah
/** * Callback status sakelar notifikasi aplikasi * * @param context tidak boleh kosong * @param enable Sakelar notifikasi aktif atau tidak, true = aktif, false = nonaktif */ @Override public void onNotificationStatus(Context context, boolean enable)
              
                   /**
      * Callback status sakelar notifikasi aplikasi
      *
      * @param context tidak boleh kosong
      * @param enable Sakelar notifikasi aktif atau tidak, true = aktif, false = nonaktif
      */
     @Override
     public void onNotificationStatus(Context context, boolean enable)

            
Tampilkan blok kode ini di jendela mengambang

onConnectStatus

/** * Apakah koneksi panjang berhasil terhubung * * Setelah inisialisasi akan membuat koneksi panjang; metode ini dipanggil saat koneksi berhasil atau gagal * * @param context tidak boleh kosong * @param enable true = berhasil; false = gagal */ public void onConnectStatus(Context context, boolean enable)
              
                   /**
      * Apakah koneksi panjang berhasil terhubung
      *
      * Setelah inisialisasi akan membuat koneksi panjang; metode ini dipanggil saat koneksi berhasil atau gagal
      *
      * @param context tidak boleh kosong
      * @param enable true = berhasil; false = gagal
      */
     public void onConnectStatus(Context context, boolean enable)

            
Tampilkan blok kode ini di jendela mengambang

onNotificationArrived

  • Channel Engagelab/Xiaomi/Meizu memiliki callback metode ini (channel Google harus di foreground)
  • notificationMessage lihat NotificationMessage
/** * Pesan notifikasi terkirim * * Dipanggil saat pesan notifikasi push terkirim * * @param context tidak boleh kosong * @param notificationMessage pesan notifikasi */ public void onNotificationArrived(Context context, NotificationMessage notificationMessage)
              
                   /**
      * Pesan notifikasi terkirim
      *
      * Dipanggil saat pesan notifikasi push terkirim
      *
      * @param context tidak boleh kosong
      * @param notificationMessage pesan notifikasi
      */
     public void onNotificationArrived(Context context, NotificationMessage notificationMessage)

            
Tampilkan blok kode ini di jendela mengambang

onNotificationUnShow

  • Notifikasi tidak ditampilkan di foreground saat dikirim di background; app memanggil metode ini saat di foreground.
/** * Pesan notifikasi tidak ditampilkan di foreground * * @param context tidak boleh kosong * @param notificationMessage pesan notifikasi */ @Override public void onNotificationUnShow(Context context, NotificationMessage notificationMessage)
              
                   /**
      * Pesan notifikasi tidak ditampilkan di foreground
      *
      * @param context tidak boleh kosong
      * @param notificationMessage pesan notifikasi
      */
     @Override
     public void onNotificationUnShow(Context context, NotificationMessage notificationMessage)

            
Tampilkan blok kode ini di jendela mengambang

onNotificationClicked

/** * Klik pesan notifikasi * * Dipanggil saat pengguna mengklik notifikasi push * * @param context tidak boleh kosong * @param notificationMessage pesan notifikasi */ public void onNotificationClicked(Context context, NotificationMessage notificationMessage)
              
                   /**
      * Klik pesan notifikasi
      *
      * Dipanggil saat pengguna mengklik notifikasi push
      *
      * @param context tidak boleh kosong
      * @param notificationMessage pesan notifikasi
      */
     public void onNotificationClicked(Context context, NotificationMessage notificationMessage)

            
Tampilkan blok kode ini di jendela mengambang

onNotificationDeleted

  • Hanya penghapusan pesan notifikasi channel Engagelab yang memicu callback ini
  • notificationMessage lihat NotificationMessage
  • Tidak dipanggil saat aplikasi dalam keadaan mati
/** * Penghapusan pesan notifikasi * * Dipanggil saat notifikasi push dihapus * * @param context tidak boleh kosong * @param notificationMessage pesan notifikasi */ public void onNotificationDeleted(Context context, NotificationMessage notificationMessage)
              
                   /**
      * Penghapusan pesan notifikasi
      *
      * Dipanggil saat notifikasi push dihapus
      *
      * @param context tidak boleh kosong
      * @param notificationMessage pesan notifikasi
      */
     public void onNotificationDeleted(Context context, NotificationMessage notificationMessage)

            
Tampilkan blok kode ini di jendela mengambang

onCustomMessage

  • Pesan kustom tidak ditampilkan di bar notifikasi
  • customMessage lihat CustomMessage
/** * Pengiriman pesan kustom * * Dipanggil saat pesan kustom terkirim * * @param context tidak boleh kosong * @param customMessage pesan kustom */ public void onCustomMessage(Context context, CustomMessage customMessage)
              
                   /**
      * Pengiriman pesan kustom
      *
      * Dipanggil saat pesan kustom terkirim
      *
      * @param context tidak boleh kosong
      * @param customMessage pesan kustom
      */
     public void onCustomMessage(Context context, CustomMessage customMessage)

            
Tampilkan blok kode ini di jendela mengambang

onTagMessage

/** * Pesan operasi tag * * @param context tidak boleh kosong * @param tagMessage informasi tag */ public void onTagMessage(Context context, TagMessage tagMessage)
              
                   /**
      * Pesan operasi tag
      *
      * @param context tidak boleh kosong
      * @param tagMessage informasi tag
      */
     public void onTagMessage(Context context, TagMessage tagMessage)

            
Tampilkan blok kode ini di jendela mengambang

onAliasMessage

/** * Pesan operasi alias * * @param context objek ApplicationContext * @param aliasMessage pesan alias */ public void onAliasMessage(Context context, AliasMessage aliasMessage)
              
                   /**
      * Pesan operasi alias
      *
      * @param context objek ApplicationContext
      * @param aliasMessage pesan alias
      */
     public void onAliasMessage(Context context, AliasMessage aliasMessage)

            
Tampilkan blok kode ini di jendela mengambang

onPlatformToken

  • Callback token vendor
/** * Pesan operasi vendor * * @param context objek ApplicationContext * @param platformMessage pesan token vendor */ public void onPlatformToken(Context context, PlatformTokenMessage platformMessage)
              
                  /**
     * Pesan operasi vendor
     *
     * @param context         objek ApplicationContext
     * @param platformMessage pesan token vendor
     */
    public void onPlatformToken(Context context, PlatformTokenMessage platformMessage)

            
Tampilkan blok kode ini di jendela mengambang

onInAppMessageShow

  • Callback tampilan pesan in-app
/** * @param context objek ApplicationContext * @param inAppMessage pesan in-app */ public void onInAppMessageShow(Context context, InAppMessage inAppMessage)
              
              /**
 * @param context      objek ApplicationContext
 * @param inAppMessage pesan in-app
 */
public void onInAppMessageShow(Context context, InAppMessage inAppMessage)

            
Tampilkan blok kode ini di jendela mengambang

onInAppMessageClick

  • Callback klik pesan in-app
/** * @param context objek ApplicationContext * @param inAppMessage pesan in-app */ public void onInAppMessageClick(Context context, InAppMessage inAppMessage)
              
              /**
 * @param context      objek ApplicationContext
 * @param inAppMessage pesan in-app
 */
public void onInAppMessageClick(Context context, InAppMessage inAppMessage)

            
Tampilkan blok kode ini di jendela mengambang

Konfigurasi NotificationChannel

Versi yang didukung

Didukung mulai versi: MTPush SDK v3.3.0

Deskripsi fitur

Sejak Android 8.0, notifikasi dikelola melalui NotificationChannels. Pengembang dapat mendefinisikan NotificationChannel sendiri dan menentukan channelId saat push via API. Di perangkat Android 8.0 ke atas, notifikasi akan mencari channel yang sesuai channelId; tingkat penting, suara, getar, dan LED mengikuti channel. Jika channelId tidak ditemukan atau dalam periode hening, default menggunakan channel engagelab.

Contoh NotificationChannel kustom

private void initChannel(){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); if (nm != null){ NotificationChannelGroup notificationChannelGroup = new NotificationChannelGroup("MyGroupId", "Custom Notification Group"); nm.createNotificationChannelGroup(notificationChannelGroup); NotificationChannel notificationChannel = new NotificationChannel("MyChannelId", "Custom Notification", NotificationManager.IMPORTANCE_HIGH); notificationChannel.setGroup("MyGroupId"); notificationChannel.enableLights(true); notificationChannel.enableVibration(true); notificationChannel.setSound("android.resource:// package_name /raw/ ringtone_file", null); nm.createNotificationChannel(notificationChannel); } } }
              
                  private void initChannel(){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
            if (nm != null){ NotificationChannelGroup notificationChannelGroup = new NotificationChannelGroup("MyGroupId", "Custom Notification Group");
                nm.createNotificationChannelGroup(notificationChannelGroup);

                NotificationChannel notificationChannel = new NotificationChannel("MyChannelId", "Custom Notification", NotificationManager.IMPORTANCE_HIGH);
                notificationChannel.setGroup("MyGroupId");
                notificationChannel.enableLights(true);
                notificationChannel.enableVibration(true);
                notificationChannel.setSound("android.resource:// package_name /raw/ ringtone_file", null);

                nm.createNotificationChannel(notificationChannel);
            }
        }
    }

            
Tampilkan blok kode ini di jendela mengambang

NotificationMessage

  • Pesan notifikasi
Atribut Tipe Deskripsi
messageId String Wajib. messageId Engagelab untuk pelacakan. Tidak boleh kosong.
overrideMessageId String overrideMessageId Engagelab untuk statistik.
platform byte Vendor. DEFAULT: 0, Xiaomi: 1, Huawei: 2, Meizu: 3, Oppo: 4, Vivo: 5, Honor: 7, Google: 8
platformMessageId String messageId vendor.
notificationId int ID notifikasi; dapat dipakai dengan clearNotification.
smallIcon String Ikon kecil. Default: drawable/mtpush_notification_icon.png.
largeIcon String Ikon besar.
title String Judul. Jika kosong, dipakai nama app.
content String Wajib. Konten. Tidak boleh kosong.
extras Bundle Bidang tambahan kunci/nilai (String).
builderId int ID gaya; lihat setNotificationLayout.
style int Gaya: 0 default, 1 Big text, 2 Inbox, 3 Big picture.
bigText String Teks panjang (gaya 1).
inbox String[] Inbox (gaya 2).
bigPicture String Gambar besar (gaya 3).
priority int Prioritas.
defaults int Nilai default suara, getar, LED.
category String Kategori notifikasi.
sound String File suara di res/raw.
channelId String Wajib sejak Android 8.0.
intentUri String URI Intent saat diklik.
badge int Jumlah badge (Huawei/Xiaomi).

CustomMessage

  • Pesan kustom
Atribut Tipe Deskripsi
messageId String Wajib. messageId Engagelab. Tidak boleh kosong.
platform byte Vendor.
platformMessageId String messageId vendor.
title String Judul.
content String Konten.
contentType String Tipe pesan.
extras Bundle Bidang tambahan.

TagMessage

  • Pesan tag
Atribut Tipe Deskripsi
sequence int Nomor urut operasi yang ditentukan pengguna.
code int Hasil; lihat code.
tags String[] Array tag (addTag, deleteTag, updateTag, queryAllTag).
queryTag String Tag (queryTag).
queryTagValid boolean Status tag (queryTag).

AliasMessage

  • Pesan alias
Atribut Tipe Deskripsi
sequence int Nomor urut operasi.
code int Hasil; lihat code.
alias String Alias (setAlias, getAlias).

PlatformTokenMessage

  • Pesan token vendor
Atribut Tipe Deskripsi
platform byte Vendor.
token String Token yang dikembalikan vendor.

InAppMessage

  • Pesan in-app
Atribut Tipe Deskripsi
messageId String Wajib. messageId Engagelab. Tidak boleh kosong.
overrideMessageId String overrideMessageId Engagelab.
target String Jalur halaman target.
imageUrl String URL gambar.
extras String Informasi tambahan.
content String Konten.
expired long Waktu kedaluwarsa.
delay long Waktu tunda.
interval long Interval tampil.
duration long Durasi tampil.
msgTime long Waktu diterima.

code

code Nilai int Deskripsi
SUCCESS 0 Berhasil
NULL_TAG_AND_ALIAS 6001 Pengaturan tidak valid
TIMEOUT 6002 Waktu habis; disarankan coba lagi (jaringan buruk atau init belum selesai).
INVALID_ALIAS 6003 Alias tidak valid. Valid: huruf, angka, garis bawah, karakter @!#$&*+=.|
TOO_LONG_ALIAS 6004 Alias terlalu panjang. Maks 40 byte (UTF-8).
INVALID_TAGS 6005 Tag tidak valid.
TOO_LONG_TAG 6006 Tag terlalu panjang. Maks 40 byte.
TOO_MANY_TAGS 6007 Terlalu banyak tag dalam satu operasi. Maks 1000.
TOO_LONG_TAGS 6008 Panjang total tag dalam satu permintaan > 5000.
UNKNOWN_ERROR 6009 Error tidak dikenal
INVALID_JSON 6010 JSON tidak valid
INVOKE_TOO_SOON 6012 Operasi tag/alias terlalu sering
CONNECT_NOT_ENABLE 6013 CONNECT_NOT_ENABLE
INVALID_MOBILE_NUMBER 6023 Nomor ponsel tidak valid
Icon Solid Transparent White Qiyu
Hubungi Sales