คู่มือการผสานรวม SDK ของช่องทางผู้ผลิต

เอกสารนี้มีวัตถุประสงค์เพื่อแนะนำลูกค้าในการผสานรวม SDK ของช่องทางผู้ผลิตต่างๆ โดยใช้วิธีการผสานรวมอัตโนมัติเพื่อให้สามารถแจ้งเตือนแบบออฟไลน์ได้

สำหรับการดาวน์โหลด SDK โปรดดูที่ ดาวน์โหลดทรัพยากร สำหรับหมายเลขเวอร์ชัน SDK ล่าสุด โปรดดูที่ บันทึกการเปลี่ยนแปลง

ข้อกำหนดเบื้องต้น

  1. ได้ผสานรวมช่องทาง Engagelab แล้ว
  2. ก่อนการผสานรวม SDK ของผู้ผลิต คุณต้องสมัครพารามิเตอร์ช่องทางของผู้ผลิตที่เกี่ยวข้อง โปรดดูรายละเอียดใน คู่มือการสมัครพารามิเตอร์ช่องทางผู้ผลิต

ไฟล์ทรัพยากร

  • วางไอคอนการแจ้งเตือนชื่อ mtpush_notification_icon.png ไว้ใน res/drawable/ หากไม่ได้กำหนดค่า SDK จะใช้ไอคอนของแอปพลิเคชัน และในเวอร์ชัน Android ที่สูงกว่าอาจมีปัญหาในการแสดงผล

คู่มือการผสานรวมช่องทาง Xiaomi

กำหนดค่า mavenCentral Support

กำหนดค่า mavenCentral support ในไฟล์ gradle หลักของไดเรกทอรีรากของ Project (โครงการใหม่มักจะกำหนดค่าการสนับสนุนนี้โดยค่าเริ่มต้น)

Groovy (build.gradle):

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {
    repositories {
        mavenCentral()
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {
    repositories {
        mavenCentral()
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

กำหนดค่าการพึ่งพา

ในส่วน dependencies ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:

Groovy (build.gradle):

dependencies { // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน SDK ของ Engagelab implementation 'com.engagelab.plugin:mi:5.x.x' }
              
              dependencies {
    // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน SDK ของ Engagelab
    implementation 'com.engagelab.plugin:mi:5.x.x'
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

dependencies { // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน SDK ของ Engagelab implementation("com.engagelab.plugin:mi:5.x.x") }
              
              dependencies {
    // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน SDK ของ Engagelab
    implementation("com.engagelab.plugin:mi:5.x.x")
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

กำหนดค่าพารามิเตอร์

ในส่วน defaultConfig ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:

Groovy (build.gradle):

manifestPlaceholders = [ // กำหนดตัวแปรในไฟล์ manifest.xml XIAOMI_APPKEY : "MI-แอป Xiaomi ของคุณ APPID", // appkey ที่ลงทะเบียนบนแพลตฟอร์ม Xiaomi XIAOMI_APPID : "MI-แอป Xiaomi ของคุณ APPKEY", // appid ที่ลงทะเบียนบนแพลตฟอร์ม Xiaomi ]
              
              manifestPlaceholders = [
    // กำหนดตัวแปรในไฟล์ manifest.xml
    XIAOMI_APPKEY : "MI-แอป Xiaomi ของคุณ APPID", // appkey ที่ลงทะเบียนบนแพลตฟอร์ม Xiaomi
    XIAOMI_APPID : "MI-แอป Xiaomi ของคุณ APPKEY", // appid ที่ลงทะเบียนบนแพลตฟอร์ม Xiaomi
]

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

manifestPlaceholders.putAll(mapOf( // กำหนดตัวแปรในไฟล์ manifest.xml "XIAOMI_APPKEY" to "MI-แอป Xiaomi ของคุณ APPID", // appkey ที่ลงทะเบียนบนแพลตฟอร์ม Xiaomi "XIAOMI_APPID" to "MI-แอป Xiaomi ของคุณ APPKEY" // appid ที่ลงทะเบียนบนแพลตฟอร์ม Xiaomi ))
              
              manifestPlaceholders.putAll(mapOf(
    // กำหนดตัวแปรในไฟล์ manifest.xml
    "XIAOMI_APPKEY" to "MI-แอป Xiaomi ของคุณ APPID", // appkey ที่ลงทะเบียนบนแพลตฟอร์ม Xiaomi
    "XIAOMI_APPID" to "MI-แอป Xiaomi ของคุณ APPKEY" // appid ที่ลงทะเบียนบนแพลตฟอร์ม Xiaomi
))

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

กำหนดค่าการป้องกันโค้ด

หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การกำหนดค่าเพื่อป้องกันการรายงานคำเตือนผิดพลาดที่อาจทำให้การคอมไพล์ไม่สำเร็จ:

-dontwarn com.xiaomi.push.** -keep class com.xiaomi.push.** { *; }
              
              -dontwarn com.xiaomi.push.**
-keep class com.xiaomi.push.** { *; }

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตรวจสอบความสำเร็จของการผสานรวม

หากการผสานรวมสำเร็จ จะมีการแสดงบันทึกดังนี้:

D [MTMiBusiness] support xiaomi push D [MTMiBusiness] onTokenSuccess:get token is Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=1, token=Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj region=NULL isUserSettings=false }
              
              D  [MTMiBusiness] support xiaomi push
D  [MTMiBusiness] onTokenSuccess:get token is Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=1,
    token=Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj
    region=NULL
    isUserSettings=false
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

วิธีการทดสอบช่องทาง Xiaomi

  1. ไปที่ [EngageLab Console] -> [AppPush] -> [การตั้งค่าพื้นฐาน] -> [การตั้งค่าการผสานรวม] ใส่พารามิเตอร์: AppKey, AppID, AppSecret และคลิก "บันทึก"
  2. หลังจากปิดกระบวนการแอป ให้ทำการผลักดัน หากได้รับการผลักดัน แสดงว่าการผสานรวมช่องทางของผู้ผลิตสำเร็จ

หมายเหตุพิเศษสำหรับ Xiaomi Android 13 และสูงกว่า

  • ตามเอกสารของ Xiaomi อย่างเป็นทางการ Android 13 และสูงกว่าต้องการให้วิธีการเปิดตัวแอปพลิเคชันตรงกับตัวกรอง Intent อย่างแม่นยำเพื่อให้แน่ใจว่าแอปพลิเคชันทำงานได้อย่างถูกต้องบนอุปกรณ์ Xiaomi

    โปรดดูรายละเอียดเพิ่มเติมในเอกสารของ Google เกี่ยวกับตัวกรอง Intent ใน Android 13 และสูงกว่า: เอกสารของ Google - Intent Filters

  • คำแนะนำสำหรับการทดสอบของนักพัฒนา:
    นักพัฒนาสามารถตรวจสอบ "การเปลี่ยนแปลงความเข้ากันได้ของแอปพลิเคชัน" ในตัวเลือกนักพัฒนาบนอุปกรณ์ Xiaomi และเปิดใช้งานตัวเลือก ENFORCE_INTENTS_TO_MATCH_INTENT_FILTERS ระหว่างการทดสอบเพื่อให้แน่ใจว่าแอปทำงานได้อย่างถูกต้องในทุกกรณี

คู่มือการผสานรวมช่องทาง Huawei

กำหนดค่า mavenCentral Support

กำหนดค่า mavenCentral support และ agconnect dependency ในไฟล์ gradle หลักของไดเรกทอรีรากของ Project

Groovy (build.gradle):

buildscript { repositories { google() mavenCentral() maven {url 'https://developer.huawei.com/repo/'} } dependencies { classpath 'com.huawei.agconnect:agcp:1.9.1.301' } } allprojects { repositories { google() mavenCentral() maven {url 'https://developer.huawei.com/repo/'} } }
              
              buildscript {
    repositories {
        google()
        mavenCentral()
        maven {url 'https://developer.huawei.com/repo/'}
    }
    dependencies {
        classpath 'com.huawei.agconnect:agcp:1.9.1.301'
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        maven {url 'https://developer.huawei.com/repo/'}
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

buildscript { repositories { google() mavenCentral() maven { url = uri("https://developer.huawei.com/repo/") } } dependencies { classpath("com.huawei.agconnect:agcp:1.9.1.301") } } allprojects { repositories { google() mavenCentral() maven { url = uri("https://developer.huawei.com/repo/") } } }
              
              buildscript {
    repositories {
        google()
        mavenCentral()
        maven { url = uri("https://developer.huawei.com/repo/") }
    }
    dependencies {
        classpath("com.huawei.agconnect:agcp:1.9.1.301")
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url = uri("https://developer.huawei.com/repo/") }
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

(ตัวเลือก) หากใช้ gradle 8.0 ให้เพิ่มคำสั่งต่อไปนี้ในไฟล์ gradle.properties ระดับโปรเจกต์:

หมายเหตุ: การผสานรวมเวอร์ชันของ AGC plugin ที่ต่ำกว่า 1.9.1.300 ไม่รองรับความเข้ากันได้กับ gradle 8.0 คุณต้องดำเนินการขั้นตอนนี้

apmsInstrumentationEnabled=false
              
              apmsInstrumentationEnabled=false

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

เพิ่ม Huawei Plugin

เพิ่ม apply plugin ที่ด้านล่างของไฟล์ build.gradle ของโมดูลแอปพลิเคชัน เพื่อเปิดใช้งาน gradle plugin:

Groovy (build.gradle):

apply plugin: 'com.huawei.agconnect'
              
              apply plugin: 'com.huawei.agconnect'

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

plugins { id("com.huawei.agconnect") }
              
              plugins {
    id("com.huawei.agconnect")
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

กำหนดค่าการพึ่งพา

ในส่วน dependencies ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้ โดยเลือกเวอร์ชันล่าสุดตามการเผยแพร่ของ Huawei:

Groovy (build.gradle):

dependencies { implementation 'com.huawei.hms:push:6.13.0.300' // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน SDK ของ AppPush implementation 'com.engagelab.plugin:huawei:5.x.x' }
              
              dependencies {

    implementation 'com.huawei.hms:push:6.13.0.300'

    // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน SDK ของ AppPush
    implementation 'com.engagelab.plugin:huawei:5.x.x'
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

dependencies { implementation("com.huawei.hms:push:6.13.0.300") // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน SDK ของ AppPush implementation("com.engagelab.plugin:huawei:5.x.x") }
              
              dependencies {
    implementation("com.huawei.hms:push:6.13.0.300")

    // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน SDK ของ AppPush
    implementation("com.engagelab.plugin:huawei:5.x.x")
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

กำหนดค่าไฟล์ agconnect-services.json

อ้างอิง คู่มือการสมัครพารามิเตอร์ช่องทางผู้ผลิต เพื่อรับไฟล์ agconnect-services.json และกำหนดค่าในไดเรกทอรี app

alt text

กำหนดค่าใบรับรองลายเซ็น

ในไฟล์ build.gradle ให้กำหนดค่าลายเซ็นที่ตรงกับใบรับรองลายนิ้วมือที่เพิ่มใน Huawei backend

บริการ HMS ต้องการให้แอปมีการลงนามเพื่อการลงทะเบียนที่สำเร็จ คุณสามารถรับใบรับรองลายนิ้วมือที่สอดคล้องกันได้โดยใช้ keytool -list -v -keystore keystorefileName ในเทอร์มินัล

Groovy (build.gradle):

signingConfigs { release { storeFile file("release.keystore")// เส้นทางไปยังไฟล์ลายเซ็น storePassword "123456" keyAlias "android.keystore" keyPassword "123456" } } buildTypes { release { minifyEnabled true proguardFiles 'proguard-rules.pro' signingConfig signingConfigs.release } debug{ minifyEnabled false signingConfig signingConfigs.release } }
              
              signingConfigs {
        release {
            storeFile file("release.keystore")// เส้นทางไปยังไฟล์ลายเซ็น
            storePassword "123456"
            keyAlias "android.keystore"
            keyPassword "123456"
        }
}

buildTypes {
        release {
            minifyEnabled true
            proguardFiles 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug{
          minifyEnabled false
           signingConfig signingConfigs.release
        }
 }

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

signingConfigs { create("release") { storeFile = file("release.keystore") // เส้นทางไปยังไฟล์ลายเซ็น storePassword = "123456" keyAlias = "android.keystore" keyPassword = "123456" } } buildTypes { getByName("release") { isMinifyEnabled = true proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") signingConfig = signingConfigs.getByName("release") } getByName("debug") { isMinifyEnabled = false signingConfig = signingConfigs.getByName("release") } }
              
              signingConfigs {
    create("release") {
        storeFile = file("release.keystore") // เส้นทางไปยังไฟล์ลายเซ็น
        storePassword = "123456"
        keyAlias = "android.keystore"
        keyPassword = "123456"
    }
}

buildTypes {
    getByName("release") {
        isMinifyEnabled = true
        proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
        signingConfig = signingConfigs.getByName("release")
    }
    getByName("debug") {
        isMinifyEnabled = false
        signingConfig = signingConfigs.getByName("release")
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

กำหนดค่าการป้องกันโค้ด

หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การกำหนดค่าเพื่อป้องกันการรายงานคำเตือนผิดพลาดที่อาจทำให้การคอมไพล์ไม่สำเร็จ:

-ignorewarnings -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.hianalytics.android.**{*;} -keep class com.huawei.updatesdk.**{*;} -keep class com.huawei.hms.**{*;}
              
              -ignorewarnings
-keepattributes *Annotation* 
-keepattributes Exceptions 
-keepattributes InnerClasses 
-keepattributes Signature 
-keepattributes SourceFile,LineNumberTable 
-keep class com.hianalytics.android.**{*;} 
-keep class com.huawei.updatesdk.**{*;} 
-keep class com.huawei.hms.**{*;}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

หากนักพัฒนาใช้ AndResGuard ให้เพิ่ม AndResGuard whitelist ในไฟล์การกำหนดค่าการป้องกันโค้ด

"R.string.hms*", "R.string.connect_server_fail_prompt_toast", "R.string.getting_message_fail_prompt_toast", "R.string.no_available_network_prompt_toast", "R.string.third_app_*", "R.string.upsdk_*", "R.layout.hms*", "R.layout.upsdk_*", "R.drawable.upsdk*", "R.color.upsdk*", "R.dimen.upsdk*", "R.style.upsdk*", "R.string.agc*"
              
              "R.string.hms*",
"R.string.connect_server_fail_prompt_toast",
"R.string.getting_message_fail_prompt_toast",
"R.string.no_available_network_prompt_toast",
"R.string.third_app_*",
"R.string.upsdk_*",
"R.layout.hms*",
"R.layout.upsdk_*",
"R.drawable.upsdk*",
"R.color.upsdk*",
"R.dimen.upsdk*",
"R.style.upsdk*",
"R.string.agc*"

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตรวจสอบความสำเร็จของการผสานรวม

หากการผสานรวมสำเร็จ บันทึกจะปรากฏดังนี้:

D [MTHuaweiBusiness] support huawei push D [MTHuaweiBusiness] onTokenSuccess:get token is IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=2, token=IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA region=NULL isUserSettings=false }
              
              
D  [MTHuaweiBusiness] support huawei push
D  [MTHuaweiBusiness] onTokenSuccess:get token is IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=2,
    token=IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA
    region=NULL
    isUserSettings=false
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

วิธีการทดสอบช่องทาง Huawei

  1. ไปที่ [EngageLab Console] -> [AppPush] -> [Basic Settings] -> [Integration Settings] หน้าจอ ใส่พารามิเตอร์: AppID, AppSecret และคลิก "Save"

alt text 2. หลังจากปิดกระบวนการแอป ให้ทำการ push หากได้รับ push การผสานรวมช่องทางผู้ผลิตสำเร็จ

คู่มือการผสานรวมช่องทาง Meizu

การตั้งค่า mavenCentral Support

ในไฟล์ gradle หลักของไดเรกทอรี root ของ Project ให้ตั้งค่า mavenCentral support (โครงการใหม่มักจะตั้งค่าการสนับสนุนนี้โดยค่าเริ่มต้น)

Groovy (build.gradle):

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {
    repositories {
        mavenCentral()
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {
    repositories {
        mavenCentral()
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตั้งค่าการพึ่งพา

ในส่วน dependencies ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:

Groovy (build.gradle):

dependencies { // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK implementation 'com.engagelab.plugin:meizu:5.x.x' // Meizu ตั้งแต่ SDK 5.2.0 ต้องเพิ่ม "com.engagelab.plugin:meizu_th_push" ก่อน 5.2.0 ไม่ต้องเพิ่มบรรทัดนี้ // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK implementation 'com.engagelab.plugin:meizu_th_push:5.2.0' }
              
              dependencies {
  // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
  implementation 'com.engagelab.plugin:meizu:5.x.x'
  // Meizu ตั้งแต่ SDK 5.2.0 ต้องเพิ่ม "com.engagelab.plugin:meizu_th_push" ก่อน 5.2.0 ไม่ต้องเพิ่มบรรทัดนี้
  // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
  implementation 'com.engagelab.plugin:meizu_th_push:5.2.0'
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

dependencies { // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK implementation("com.engagelab.plugin:meizu:5.x.x") // Meizu ตั้งแต่ SDK 5.2.0 ต้องเพิ่ม "com.engagelab.plugin:meizu_th_push" ก่อน 5.2.0 ไม่ต้องเพิ่มบรรทัดนี้ // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK implementation("com.engagelab.plugin:meizu_th_push:5.2.0") }
              
              dependencies {
    // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
    implementation("com.engagelab.plugin:meizu:5.x.x")
    // Meizu ตั้งแต่ SDK 5.2.0 ต้องเพิ่ม "com.engagelab.plugin:meizu_th_push" ก่อน 5.2.0 ไม่ต้องเพิ่มบรรทัดนี้
    // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
    implementation("com.engagelab.plugin:meizu_th_push:5.2.0")
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตั้งค่าพารามิเตอร์

ในส่วน defaultConfig ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:

พารามิเตอร์สำหรับ Meizu ต้องมีคำนำหน้าด้วย "MZ-"

Groovy (build.gradle):

manifestPlaceholders = [ // ตั้งค่าตัวแปรในไฟล์ manifest.xml MEIZU_APPKEY : "MZ-แอป Meizu ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม Meizu MEIZU_APPID : "MZ-แอป Meizu ของคุณ APPID", // appid ที่ลงทะเบียนในแพลตฟอร์ม Meizu ]
              
              manifestPlaceholders = [
     // ตั้งค่าตัวแปรในไฟล์ manifest.xml
     MEIZU_APPKEY : "MZ-แอป Meizu ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม Meizu
     MEIZU_APPID : "MZ-แอป Meizu ของคุณ APPID", // appid ที่ลงทะเบียนในแพลตฟอร์ม Meizu
]

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

manifestPlaceholders.putAll(mapOf( // ตั้งค่าตัวแปรในไฟล์ manifest.xml "MEIZU_APPKEY" to "MZ-แอป Meizu ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม Meizu "MEIZU_APPID" to "MZ-แอป Meizu ของคุณ APPID" // appid ที่ลงทะเบียนในแพลตฟอร์ม Meizu ))
              
              manifestPlaceholders.putAll(mapOf(
    // ตั้งค่าตัวแปรในไฟล์ manifest.xml
    "MEIZU_APPKEY" to "MZ-แอป Meizu ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม Meizu
    "MEIZU_APPID" to "MZ-แอป Meizu ของคุณ APPID" // appid ที่ลงทะเบียนในแพลตฟอร์ม Meizu
))

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตั้งค่าการลบโค้ด

หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การตั้งค่าเพื่อป้องกันการรายงานคำเตือนที่ผิดพลาดซึ่งอาจทำให้การคอมไพล์ไม่สำเร็จ:

-dontwarn com.meizu.cloud.** -keep class com.meizu.cloud.** { *; }
              
              -dontwarn com.meizu.cloud.**
-keep class com.meizu.cloud.** { *; }

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตรวจสอบความสำเร็จของการผสานรวม

หากการผสานรวมสำเร็จ บันทึกจะปรากฏดังนี้:

D [MTMeizuBusiness] support meizu push D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=3, token=DDI5c060475064d447b40670206756d73605705037205 region=NULL isUserSettings=false }
              
              
D  [MTMeizuBusiness] support meizu push
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=3,
    token=DDI5c060475064d447b40670206756d73605705037205
    region=NULL
    isUserSettings=false
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

หากช่องทาง Meizu ไม่สามารถรับ token ได้ ให้ลองเพิ่ม android.enableR8 = false ใน gradle.properties เพื่อปิดใช้งาน R8

วิธีการทดสอบช่องทางผู้ผลิต Meizu

  1. ไปที่ [EngageLab Console] -> [AppPush] -> [Basic Settings] -> [Integration Settings] หน้าจอ ใส่พารามิเตอร์: AppKey, AppID, AppSecret และคลิก "Save" alt text

  2. หลังจากปิดกระบวนการแอป ให้ทำการ push หากได้รับ push การผสานรวมช่องทางผู้ผลิตสำเร็จ

คู่มือการผสานรวมช่องทาง Vivo

การตั้งค่า mavenCentral Support

ในไฟล์ gradle หลักของไดเรกทอรี root ของ Project ให้ตั้งค่า mavenCentral support (โครงการใหม่มักจะตั้งค่าการสนับสนุนนี้โดยค่าเริ่มต้น)

Groovy (build.gradle):

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {
    repositories {
        mavenCentral()
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {
    repositories {
        mavenCentral()
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตั้งค่าการพึ่งพา

ในส่วน dependencies ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:

Groovy (build.gradle):

dependencies{ // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK implementation 'com.engagelab.plugin:vivo:5.x.x' }
              
              dependencies{
    // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
    implementation 'com.engagelab.plugin:vivo:5.x.x'
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

dependencies { // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK implementation("com.engagelab.plugin:vivo:5.x.x") }
              
              dependencies {
    // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
    implementation("com.engagelab.plugin:vivo:5.x.x")
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตั้งค่าพารามิเตอร์

ในส่วน defaultConfig ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:

Groovy (build.gradle):

manifestPlaceholders=[ VIVO_APPKEY : "แอป Vivo ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม Vivo VIVO_APPID : "แอป Vivo ของคุณ APPID", // appid ที่ลงทะเบียนในแพลตฟอร์ม Vivo ]
              
              manifestPlaceholders=[
    VIVO_APPKEY : "แอป Vivo ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม Vivo
    VIVO_APPID : "แอป Vivo ของคุณ APPID", // appid ที่ลงทะเบียนในแพลตฟอร์ม Vivo
]

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

manifestPlaceholders.putAll(mapOf( "VIVO_APPKEY" to "แอป Vivo ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม Vivo "VIVO_APPID" to "แอป Vivo ของคุณ APPID" // appid ที่ลงทะเบียนในแพลตฟอร์ม Vivo ))
              
              manifestPlaceholders.putAll(mapOf(
    "VIVO_APPKEY" to "แอป Vivo ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม Vivo
    "VIVO_APPID" to "แอป Vivo ของคุณ APPID" // appid ที่ลงทะเบียนในแพลตฟอร์ม Vivo
))

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตรวจสอบความสำเร็จของการผสานรวม

หากการผสานรวมสำเร็จ บันทึกจะปรากฏดังนี้:

D [MTVivoBusiness] support vivo push D [MTVivoBusiness] getRegId onTokenSuccess:get token is v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=5, token=v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ region=NULL isUserSettings=false }
              
              D  [MTVivoBusiness] support vivo push
D  [MTVivoBusiness] getRegId onTokenSuccess:get token is v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=5,
    token=v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ
    region=NULL
    isUserSettings=false
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตั้งค่าการลบโค้ด

หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การตั้งค่าเพื่อป้องกันการรายงานคำเตือนที่ผิดพลาดซึ่งอาจทำให้การคอมไพล์ไม่สำเร็จ:

-dontwarn com.vivo.push.** -keep class com.vivo.push.**{*; } -keep class com.vivo.vms.**{*; }
              
              -dontwarn com.vivo.push.**
-keep class com.vivo.push.**{*; }
-keep class com.vivo.vms.**{*; }

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

วิธีการทดสอบช่องทาง Vivo

  1. ไปที่ [EngageLab Console] -> [AppPush] -> [Basic Settings] -> [Integration Settings] หน้าจอ ใส่พารามิเตอร์: AppKey, AppID, AppSecret และคลิก "Save"

alt text 2. หลังจากปิดกระบวนการแอป ให้ทำการ push หากได้รับ push การผสานรวมช่องทางผู้ผลิตสำเร็จ

หากแอป Vivo ยังไม่ได้วางจำหน่ายในร้าน เมื่อทดสอบ push ต้องเพิ่มอุปกรณ์ทดสอบในแพลตฟอร์ม push ของ Vivo และส่งผ่าน API โดยระบุพารามิเตอร์ push_mode

"options": { "classification": 1, "third_party_channel": { "vivo": { "pushMode": 1, // ไม่บังคับ เพิ่มเมื่อ 2020/09/21 สอดคล้องกับฟิลด์ pushMode ของ Vivo ค่าเต็มตัวคือ: “0” สำหรับ push แบบปกติ; “1” สำหรับ push แบบทดสอบ ค่าเริ่มต้นคือ 0 "distribution_new": "pns_mtpush" } } }
              
               "options": {           
    "classification": 1,           
    "third_party_channel": {                
        "vivo": {                    
            "pushMode":  1, // ไม่บังคับ เพิ่มเมื่อ 2020/09/21 สอดคล้องกับฟิลด์ pushMode ของ Vivo ค่าเต็มตัวคือ: “0” สำหรับ push แบบปกติ; “1” สำหรับ push แบบทดสอบ ค่าเริ่มต้นคือ 0                 
            "distribution_new": "pns_mtpush"                
        }            
    }        
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

คู่มือการผสานรวมช่องทาง OPPO

การตั้งค่า mavenCentral Support

ในไฟล์ gradle หลักของไดเรกทอรี root ของ Project ให้ตั้งค่า mavenCentral support (โครงการใหม่มักจะตั้งค่าการสนับสนุนนี้โดยค่าเริ่มต้น)

Groovy (build.gradle):

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {
    repositories {
        mavenCentral()
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {
    repositories {
        mavenCentral()
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตั้งค่าการพึ่งพา

ในส่วน dependencies ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:

Groovy (build.gradle):

dependencies{ // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK implementation 'com.engagelab.plugin:oppo:5.x.x' implementation 'com.engagelab.plugin:oppo_th_push:5.x.x' // OPPO ต้องเพิ่มการพึ่งพาต่อไปนี้ implementation 'com.google.code.gson:gson:2.10.1' implementation 'commons-codec:commons-codec:1.6' implementation 'androidx.annotation:annotation:1.1.0' }
              
              dependencies{
    // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
    implementation 'com.engagelab.plugin:oppo:5.x.x'
    implementation 'com.engagelab.plugin:oppo_th_push:5.x.x'

    // OPPO ต้องเพิ่มการพึ่งพาต่อไปนี้
    implementation 'com.google.code.gson:gson:2.10.1'
    implementation 'commons-codec:commons-codec:1.6'
    implementation 'androidx.annotation:annotation:1.1.0'
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

dependencies { // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK implementation("com.engagelab.plugin:oppo:5.x.x") implementation("com.engagelab.plugin:oppo_th_push:5.x.x") // OPPO ต้องเพิ่มการพึ่งพาต่อไปนี้ implementation("com.google.code.gson:gson:2.10.1") implementation("commons-codec:commons-codec:1.6") implementation("androidx.annotation:annotation:1.1.0") }
              
              dependencies {
    // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
    implementation("com.engagelab.plugin:oppo:5.x.x")
    implementation("com.engagelab.plugin:oppo_th_push:5.x.x")

    // OPPO ต้องเพิ่มการพึ่งพาต่อไปนี้
    implementation("com.google.code.gson:gson:2.10.1")
    implementation("commons-codec:commons-codec:1.6")
    implementation("androidx.annotation:annotation:1.1.0")
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตั้งค่าพารามิเตอร์

ในส่วน defaultConfig ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:

พารามิเตอร์ของ OPPO ต้องมีคำนำหน้าด้วย "OP-"

Groovy (build.gradle):

manifestPlaceholders=[ OPPO_APPKEY : "OP-แอป OPPO ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม OPPO OPPO_APPID : "OP-แอป OPPO ของคุณ APPID", // appid ที่ลงทะเบียนในแพลตฟอร์ม OPPO OPPO_APPSECRET: "OP-แอป OPPO ของคุณ APPSECRET" // appsecret ที่ลงทะเบียนในแพลตฟอร์ม OPPO ]
              
              manifestPlaceholders=[
    OPPO_APPKEY : "OP-แอป OPPO ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม OPPO
    OPPO_APPID : "OP-แอป OPPO ของคุณ APPID", // appid ที่ลงทะเบียนในแพลตฟอร์ม OPPO
    OPPO_APPSECRET: "OP-แอป OPPO ของคุณ APPSECRET" // appsecret ที่ลงทะเบียนในแพลตฟอร์ม OPPO
]

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

manifestPlaceholders.putAll(mapOf( "OPPO_APPKEY" to "OP-แอป OPPO ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม OPPO "OPPO_APPID" to "OP-แอป OPPO ของคุณ APPID", // appid ที่ลงทะเบียนในแพลตฟอร์ม OPPO "OPPO_APPSECRET" to "OP-แอป OPPO ของคุณ APPSECRET" // appsecret ที่ลงทะเบียนในแพลตฟอร์ม OPPO ))
              
              manifestPlaceholders.putAll(mapOf(
    "OPPO_APPKEY" to "OP-แอป OPPO ของคุณ APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม OPPO
    "OPPO_APPID" to "OP-แอป OPPO ของคุณ APPID", // appid ที่ลงทะเบียนในแพลตฟอร์ม OPPO
    "OPPO_APPSECRET" to "OP-แอป OPPO ของคุณ APPSECRET" // appsecret ที่ลงทะเบียนในแพลตฟอร์ม OPPO
))

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตั้งค่าการลบโค้ด

หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การตั้งค่าเพื่อป้องกันการรายงานคำเตือนที่ผิดพลาดซึ่งอาจทำให้การคอมไพล์ไม่สำเร็จ:

-dontwarn com.coloros.mcsdk.** -keep class com.coloros.mcsdk.** { *; } -dontwarn com.heytap.** -keep class com.heytap.** { *; } -dontwarn com.mcs.** -keep class com.mcs.** { *; }
              
              -dontwarn com.coloros.mcsdk.**
-keep class com.coloros.mcsdk.** { *; }

-dontwarn com.heytap.**
-keep class com.heytap.** { *; }

-dontwarn com.mcs.**
-keep class com.mcs.** { *; }

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตรวจสอบความสำเร็จของการผสานรวม

หากการผสานรวมสำเร็จ บันทึกจะปรากฏดังนี้:

D [MTOppoBusiness] support oppo push D [MTOppoBusiness] onTokenSuccess:get token is OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6 D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=4, token=OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6 region=NULL isUserSettings=false }
              
              
D  [MTOppoBusiness] support oppo push
D  [MTOppoBusiness] onTokenSuccess:get token is OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=4,
    token=OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6
    region=NULL
    isUserSettings=false
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

วิธีการทดสอบช่องทาง OPPO

  1. ไปที่ [EngageLab Console] -> [AppPush] -> [Basic Settings] -> [Integration Settings] หน้า, ป้อนพารามิเตอร์: AppKey, AppID, AppSecret, MasterSecret และคลิก "Save"

alt text 2. หลังจากปิดกระบวนการแอปพลิเคชัน ให้ทำการ Push หากได้รับ Push การรวมช่องทางผู้ผลิตสำเร็จ

หากแอปยังไม่ได้วางจำหน่าย ต้องสมัครสิทธิ์ทดสอบ Push บนแพลตฟอร์ม OPPO Open Platform แต่ละแอปสามารถ push ข้อความช่องทางสาธารณะได้ 1000 ข้อความต่อวัน

คู่มือการรวมช่องทาง FCM

การตั้งค่าการสนับสนุน mavenCentral

ในไฟล์ gradle หลักของไดเรกทอรีรากของโปรเจกต์ ให้ตั้งค่าการสนับสนุน mavenCentral และการพึ่งพา google-services

Groovy (build.gradle):

buildscript { repositories { mavenCentral() } dependencies { classpath 'com.google.gms:google-services:4.3.15' } } allprojects { repositories { mavenCentral() maven { url "https://maven.google.com" } } }
              
              buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.google.gms:google-services:4.3.15'
    }
}

allprojects {
    repositories {
        mavenCentral()
        maven { url "https://maven.google.com" }
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

buildscript { repositories { mavenCentral() } dependencies { classpath("com.google.gms:google-services:4.3.15") } } allprojects { repositories { mavenCentral() maven { url = uri("https://maven.google.com") } } }
              
              buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("com.google.gms:google-services:4.3.15")
    }
}

allprojects {
    repositories {
        mavenCentral()
        maven { url = uri("https://maven.google.com") }
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

เพิ่มปลั๊กอิน FCM

ที่ด้านล่างของไฟล์ build.gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มบรรทัด apply plugin เพื่อเปิดใช้งาน gradle plugin:

Groovy (build.gradle):

apply plugin: 'com.google.gms.google-services'
              
              apply plugin: 'com.google.gms.google-services'

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

plugins { id("com.google.gms.google-services") }
              
              plugins {
    id("com.google.gms.google-services")
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตั้งค่าการพึ่งพา

ในส่วน dependencies ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:

Groovy (build.gradle):

dependencies { // เวอร์ชันผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK implementation 'com.engagelab.plugin:google:5.x.x' implementation 'com.google.firebase:firebase-messaging:25.0.1' }
              
              dependencies {
    // เวอร์ชันผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
    implementation 'com.engagelab.plugin:google:5.x.x'
    implementation 'com.google.firebase:firebase-messaging:25.0.1'
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

dependencies { // เวอร์ชันผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK implementation("com.engagelab.plugin:google:5.x.x") implementation("com.google.firebase:firebase-messaging:25.0.1") }
              
              dependencies {
    // เวอร์ชันผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
    implementation("com.engagelab.plugin:google:5.x.x")
    implementation("com.google.firebase:firebase-messaging:25.0.1")
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ในส่วน android ของไฟล์ gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:

Groovy (build.gradle):

android { // google push ต้องการ java 1.8 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
              
              android {
    // google push ต้องการ java 1.8
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

android { // google push ต้องการ java 1.8 compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } }
              
              android {
    // google push ต้องการ java 1.8
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตั้งค่าไฟล์ google-services.json

อ้างอิง [คู่มือการสมัครพารามิเตอร์ช่องทางผู้ผลิต](https://www.engagelab.com/th_TH/docs/app-push/developer-guide/client-sdk-reference/android-sdk/application-guide-for-manufacturer-channel-parameters#fcm-%E5%8F%82%E6%95%B0%E8%8E%B7%E5%8F%96) เพื่อรับไฟล์ google-services.json และตั้งค่าในไดเรกทอรี app

alt text

การตั้งค่าไอคอนการแจ้งเตือน FCM

เพิ่มการตั้งค่าต่อไปนี้ใน AndroidManifest.xml เพื่อตั้งค่าไอคอนการแจ้งเตือน FCM:

<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/ไอคอนการแจ้งเตือนที่ต้องการกำหนด" />
              
              <meta-data android:name="com.google.firebase.messaging.default_notification_icon"
     android:resource="@drawable/ไอคอนการแจ้งเตือนที่ต้องการกำหนด" />

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตรวจสอบความสำเร็จของการรวม

หากการรวมสำเร็จ จะมีการแสดงผลลัพธ์ใน log ดังนี้:

D [MTGoogleBusiness] support google push D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=8, token=dj793yH_RO6FqNyKImQJYV:APA91bExj3PSVv50pwtl83LXVeB_HKOCSkyB6qCE12TIwIRl-RKiqCfXjvCshcqVrqn_8htlNBa8_A_8ixq7YIxfrloxig2BryZPCkunyx_z2drz0L-C2K8R7J8Yrojs61WCsF-BZj8h region=NULL isUserSettings=false }
              
              
D  [MTGoogleBusiness] support google push
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=8,
    token=dj793yH_RO6FqNyKImQJYV:APA91bExj3PSVv50pwtl83LXVeB_HKOCSkyB6qCE12TIwIRl-RKiqCfXjvCshcqVrqn_8htlNBa8_A_8ixq7YIxfrloxig2BryZPCkunyx_z2drz0L-C2K8R7J8Yrojs61WCsF-BZj8h
    region=NULL
    isUserSettings=false
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

วิธีการทดสอบช่องทาง FCM

  1. เงื่อนไขเบื้องต้นสำหรับการทดสอบ:
  • ระบบโทรศัพท์ต้องมี Google Play services เวอร์ชัน 17.3.4 หรือสูงกว่า
  • การทดสอบต้องเชื่อมต่อกับ VPN ต่างประเทศและตรวจสอบให้แน่ใจว่าเครือข่ายโทรศัพท์สามารถเข้าถึง Google ได้
  • หากใช้โทรศัพท์ในประเทศสำหรับการทดสอบ แอปต้องทำงานในพื้นหลัง; การทดสอบจะล้มเหลวหากแอปถูกปิด เนื่องจากผู้ผลิตในประเทศอาจปิดกระบวนการในพื้นหลัง
  1. ไปที่ [EngageLab Console] -> [AppPush] -> [Basic Settings] -> [Integration Settings] หน้า, ป้อนพารามิเตอร์: App Secret และคลิก "Save" alt text

  2. หากทดสอบในประเทศจีน ต้องตั้งค่ารหัสประเทศหลังการเริ่มต้น

Java:

public class ExampleApplication extends Application { @Override public void onCreate() { super.onCreate(); MTCorePrivatesApi.configDebugMode(this, true); // ตั้งค่ารหัสประเทศ -- ไม่ควรตั้งค่าในสภาพแวดล้อมการผลิต MTGlobal.setCountryCode("US"); // เริ่มต้น MTPushPrivatesApi.init(this); } }
              
              public class ExampleApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        MTCorePrivatesApi.configDebugMode(this, true);

        // ตั้งค่ารหัสประเทศ -- ไม่ควรตั้งค่าในสภาพแวดล้อมการผลิต
        MTGlobal.setCountryCode("US");

        // เริ่มต้น
        MTPushPrivatesApi.init(this);

    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin:

class ExampleApplication : Application() { override fun onCreate() { super.onCreate() MTCorePrivatesApi.configDebugMode(this, true) // ตั้งค่ารหัสประเทศ -- ไม่ควรตั้งค่าในสภาพแวดล้อมการผลิต MTGlobal.setCountryCode("US") // เริ่มต้น MTPushPrivatesApi.init(this) } }
              
              class ExampleApplication : Application() {
    override fun onCreate() {
        super.onCreate()

        MTCorePrivatesApi.configDebugMode(this, true)

        // ตั้งค่ารหัสประเทศ -- ไม่ควรตั้งค่าในสภาพแวดล้อมการผลิต
        MTGlobal.setCountryCode("US")

        // เริ่มต้น
        MTPushPrivatesApi.init(this)
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
  1. ตรวจสอบใน backend AppPush ว่าบันทึกการ push เป็นช่องทาง FCM หรือช่องทาง Engagelab

alt text

คู่มือการรวมช่องทาง Honor

การตั้งค่าการสนับสนุน mavenCentral

ในไฟล์ gradle หลักของไดเรกทอรีรากของโปรเจกต์ ให้ตั้งค่าการสนับสนุน mavenCentral (โปรเจกต์ใหม่มักจะตั้งค่าการสนับสนุนนี้โดยค่าเริ่มต้น)

buildscript { repositories { ... mavenCentral() ... } } allprojects { repositories { ... mavenCentral() ... } }
              
              buildscript {
    repositories {
      ...
      mavenCentral()
      ...
    }
}

allprojects {
    repositories {
        ...
        mavenCentral()
        ...
    }
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตั้งค่าพารามิเตอร์และการพึ่งพา

ในไฟล์ build.gradle ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:

Groovy (build.gradle):

defaultConfig { ... manifestPlaceholders = [ ... HONOR_APPID : "แอป Honor ของคุณ APP ID", // APP ID ที่ลงทะเบียนในแพลตฟอร์ม Honor ... ] ... } dependencies { ... // เวอร์ชันผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK implementation 'com.engagelab.plugin:honor:5.x.x' implementation 'com.engagelab.plugin:honor_th_push:5.x.x' ... }
              
                defaultConfig {
        ...
        manifestPlaceholders = [
               ...
               HONOR_APPID : "แอป Honor ของคุณ APP ID", // APP ID ที่ลงทะเบียนในแพลตฟอร์ม Honor
               ...
        ]
        ...
    }
  dependencies {
        ...
        // เวอร์ชันผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
        implementation 'com.engagelab.plugin:honor:5.x.x'
        implementation 'com.engagelab.plugin:honor_th_push:5.x.x'
        ...
  }

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Kotlin DSL (build.gradle.kts):

defaultConfig { // ... manifestPlaceholders.putAll(mapOf( // ... "HONOR_APPID" to "แอป Honor ของคุณ APP ID", // APP ID ที่ลงทะเบียนในแพลตฟอร์ม Honor // ... )) // ... } dependencies { // ... // เวอร์ชันผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK implementation("com.engagelab.plugin:honor:5.x.x") implementation("com.engagelab.plugin:honor_th_push:5.x.x") // ... }
              
                defaultConfig {
        // ...
        manifestPlaceholders.putAll(mapOf(
            // ...
            "HONOR_APPID" to "แอป Honor ของคุณ APP ID", // APP ID ที่ลงทะเบียนในแพลตฟอร์ม Honor
            // ...
        ))
        // ...
    }
  dependencies {
        // ...
        // เวอร์ชันผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
        implementation("com.engagelab.plugin:honor:5.x.x")
        implementation("com.engagelab.plugin:honor_th_push:5.x.x")
        // ...
  }

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตั้งค่าใบรับรองลายเซ็น

ในไฟล์ build.gradle ให้ตั้งค่าลายเซ็นที่ตรงกับใบรับรองลายนิ้วมือที่เพิ่มใน backend ของ Honor

บริการ Honor ต้องการให้แอปมีการลงนามเพื่อการลงทะเบียนที่สำเร็จ สามารถรับใบรับรองลายนิ้วมือที่ตรงกันได้ในเทอร์มินัลด้วยคำสั่ง keytool -list -v -keystore <เส้นทางสัมบูรณ์ของไฟล์ลายเซ็น> หากไม่มีไฟล์ลายเซ็นหรือรหัสผ่านคีย์ สามารถใช้คำสั่ง keytool -list -printcert -jarfile <เส้นทางสัมบูรณ์ของไฟล์ Apk> ในเทอร์มินัลเพื่อรับใบรับรองลายนิ้วมือได้

การตรวจสอบความสำเร็จของการรวม

หากการรวมสำเร็จ จะมีการแสดงผลลัพธ์ใน log ดังนี้:

D [MTHonorBusiness] support honor push D [MTHonorBusiness] onTokenSuccess:get token is s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5 D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=7, token=s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5 region=NULL isUserSettings=false }
              
              
D  [MTHonorBusiness] support honor push
D  [MTHonorBusiness] onTokenSuccess:get token is s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=7,
    token=s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5
    region=NULL
    isUserSettings=false
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตั้งค่าการปกปิดโค้ด

หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การตั้งค่าเพื่อป้องกันการรายงานคำเตือนที่ผิดพลาดซึ่งอาจทำให้การคอมไพล์ล้มเหลว:

-ignorewarnings -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.hihonor.push.**{*;}
              
              
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hihonor.push.**{*;}
  

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

วิธีการทดสอบช่องทาง Honor

  1. ไปที่ [EngageLab Console] -> [AppPush] -> [Basic Settings] -> [Integration Settings] หน้า, ป้อนพารามิเตอร์: App ID, Client ID, Client Secret, App Secret และคลิก "Save"

alt text

  1. หลังจากปิดกระบวนการแอปพลิเคชัน ให้ทำการ Push หากได้รับ Push การรวมช่องทางผู้ผลิตสำเร็จ

วิธีการรายงานการแจ้งเตือนของผู้ผลิตโดยไม่ต้องรวม SDK ของผู้ผลิตแต่ยังคงใช้ EngageLab เพื่อ Push ข้อความของผู้ผลิต

/** * รายงานการแจ้งเตือนช่องทางผู้ผลิตที่มาถึง * * รายงานผ่าน http/https * * @param context ต้องไม่เป็น null * @param messageId EngageLab message id, ต้องไม่เป็น null * @param platform ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 8:google) * @param platformMessageId message id ของผู้ผลิต, สามารถเป็น null ได้ */ public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * รายงานการแจ้งเตือนช่องทางผู้ผลิตที่มาถึง
     * 
     * รายงานผ่าน http/https
     *
     * @param context           ต้องไม่เป็น null
     * @param messageId         EngageLab message id, ต้องไม่เป็น null
     * @param platform          ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 8:google)
     * @param platformMessageId message id ของผู้ผลิต, สามารถเป็น null ได้
     */
    public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
/** * รายงานการคลิกการแจ้งเตือนช่องทางผู้ผลิต * * รายงานผ่าน http/https * * @param context ต้องไม่เป็น null * @param messageId EngageLab message id, ต้องไม่เป็น null * @param platform ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param platformMessageId message id ของผู้ผลิต, สามารถเป็น null ได้ */ public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * รายงานการคลิกการแจ้งเตือนช่องทางผู้ผลิต
     * 
     * รายงานผ่าน http/https
     *
     * @param context           ต้องไม่เป็น null
     * @param messageId         EngageLab message id, ต้องไม่เป็น null
     * @param platform          ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
     * @param platformMessageId message id ของผู้ผลิต, สามารถเป็น null ได้
     */
    public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
/** * รายงานการลบการแจ้งเตือนช่องทางผู้ผลิต * * รายงานผ่าน http/https * * @param context ต้องไม่เป็น null * @param messageId EngageLab message id, ต้องไม่เป็น null * @param platform ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param platformMessageId message id ของผู้ผลิต, สามารถเป็น null ได้ */ public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * รายงานการลบการแจ้งเตือนช่องทางผู้ผลิต
     * 
     * รายงานผ่าน http/https
     *
     * @param context           ต้องไม่เป็น null
     * @param messageId         EngageLab message id, ต้องไม่เป็น null
     * @param platform          ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
     * @param platformMessageId message id ของผู้ผลิต, สามารถเป็น null ได้
     */
    public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
/** * รายงานการเปิดการแจ้งเตือนช่องทางผู้ผลิต * * รายงานผ่าน http/https * * @param context ต้องไม่เป็น null * @param messageId EngageLab message id, ต้องไม่เป็น null * @param platform ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param platformMessageId message id ของผู้ผลิต, สามารถเป็น null ได้ */ public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * รายงานการเปิดการแจ้งเตือนช่องทางผู้ผลิต
     * 
     * รายงานผ่าน http/https
     *
     * @param context           ต้องไม่เป็น null
     * @param messageId         EngageLab message id, ต้องไม่เป็น null
     * @param platform          ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
     * @param platformMessageId message id ของผู้ผลิต, สามารถเป็น null ได้
     */
    public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
/** * อัปโหลด token ของผู้ผลิต * * ต้องเรียกหลังจากการเชื่อมต่อ EngageLab long connection สำเร็จ มิฉะนั้นจะไม่ถูกต้อง สถานะการเชื่อมต่อ long connection สำเร็จเมื่อ `MTCommonReceiver.onConnectStatus` callback ส่งคืนค่า true * * อัปโหลดผ่าน TCP * * @param context ต้องไม่เป็น null * @param platform ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google) * @param token token ที่ส่งคืนโดยผู้ผลิต, ต้องไม่เป็น null */ public static void uploadPlatformToken(Context context, byte platform, String token)
              
                  /**
     * อัปโหลด token ของผู้ผลิต
     *
     * ต้องเรียกหลังจากการเชื่อมต่อ EngageLab long connection สำเร็จ มิฉะนั้นจะไม่ถูกต้อง สถานะการเชื่อมต่อ long connection สำเร็จเมื่อ `MTCommonReceiver.onConnectStatus` callback ส่งคืนค่า true
     * 
     * อัปโหลดผ่าน TCP
     *
     * @param context  ต้องไม่เป็น null
     * @param platform ผู้ผลิต, ค่า (1:mi, 2:huawei, 3:meizu, 4:oppo, 5:vivo, 7:honor, 8:google)
     * @param token    token ที่ส่งคืนโดยผู้ผลิต, ต้องไม่เป็น null
     */
    public static void uploadPlatformToken(Context context, byte platform, String token)

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
Icon Solid Transparent White Qiyu
ติดต่อฝ่ายขาย