คู่มือการผสานรวม SDK ของช่องทางผู้ผลิต
เอกสารนี้มีวัตถุประสงค์เพื่อแนะนำลูกค้าในการผสานรวม SDK ของช่องทางผู้ผลิตต่างๆ โดยใช้วิธีการผสานรวมอัตโนมัติเพื่อให้สามารถแจ้งเตือนแบบออฟไลน์ได้
สำหรับการดาวน์โหลด SDK โปรดดูที่ ดาวน์โหลดทรัพยากร สำหรับหมายเลขเวอร์ชัน SDK ล่าสุด โปรดดูที่ บันทึกการเปลี่ยนแปลง
ข้อกำหนดเบื้องต้น
- ได้ผสานรวมช่องทาง Engagelab แล้ว
- ก่อนการผสานรวม SDK ของผู้ผลิต คุณต้องสมัครพารามิเตอร์ช่องทางของผู้ผลิตที่เกี่ยวข้อง โปรดดูรายละเอียดใน คู่มือการสมัครพารามิเตอร์ช่องทางผู้ผลิต
ไฟล์ทรัพยากร
- วางไอคอนการแจ้งเตือนชื่อ
mtpush_notification_icon.png
ไว้ในres/drawable/
หากไม่ได้กำหนดค่า SDK จะใช้ไอคอนของแอปพลิเคชัน และในเวอร์ชัน Android ที่สูงกว่าอาจมีปัญหาในการแสดงผล
คู่มือการผสานรวมช่องทาง Xiaomi
กำหนดค่า mavenCentral Support
กำหนดค่า mavenCentral support ในไฟล์ gradle หลักของไดเรกทอรีรากของ Project (โครงการใหม่มักจะกำหนดค่าการสนับสนุนนี้โดยค่าเริ่มต้น)
buildscript {
repositories {
mavenCentral()
}
}
allprojects {
repositories {
mavenCentral()
}
}
กำหนดค่าการพึ่งพา
ในส่วน dependencies
ของไฟล์ gradle
ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
dependencies {
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน SDK ของ Engagelab
implementation 'com.engagelab.plugin:mi:5.x.x'
}
กำหนดค่าพารามิเตอร์
ในส่วน defaultConfig
ของไฟล์ gradle
ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
manifestPlaceholders = [
// กำหนดตัวแปรในไฟล์ manifest.xml
XIAOMI_APPKEY : "MI-Your Xiaomi app's APPID", // appkey ที่ลงทะเบียนบนแพลตฟอร์ม Xiaomi
XIAOMI_APPID : "MI-Your Xiaomi app's APPKEY", // appid ที่ลงทะเบียนบนแพลตฟอร์ม Xiaomi
]
กำหนดค่าการป้องกันโค้ด
หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การกำหนดค่าเพื่อป้องกันการรายงานคำเตือนผิดพลาดที่อาจทำให้การคอมไพล์ไม่สำเร็จ:
-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
}
วิธีการทดสอบช่องทาง Xiaomi
- ไปที่ [EngageLab Console] -> [AppPush] -> [การตั้งค่าพื้นฐาน] -> [การตั้งค่าการผสานรวม] ใส่พารามิเตอร์: AppKey, AppID, AppSecret และคลิก "บันทึก"
- หลังจากปิดกระบวนการแอป ให้ทำการผลักดัน หากได้รับการผลักดัน แสดงว่าการผสานรวมช่องทางของผู้ผลิตสำเร็จ
หมายเหตุพิเศษสำหรับ 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
buildscript {
repositories {
google()
mavenCentral()
maven {url 'https://developer.huawei.com/repo/'}
}
}
buildscript {
dependencies {
classpath 'com.huawei.agconnect:agcp:1.6.0.300'
}
}
allprojects {
repositories {
google()
mavenCentral()
maven {url 'https://developer.huawei.com/repo/'}
}
}
(ตัวเลือก) หากใช้ gradle 8.0 ให้เพิ่มคำสั่งต่อไปนี้ในไฟล์ gradle.properties
ระดับโปรเจกต์:
หมายเหตุ: การผสานรวมเวอร์ชันของ AGC plugin ที่ต่ำกว่า 1.9.1.300 ไม่รองรับความเข้ากันได้กับ gradle 8.0 คุณต้องดำเนินการขั้นตอนนี้
apmsInstrumentationEnabled=false
เพิ่ม Huawei Plugin
เพิ่มบรรทัดต่อไปนี้ที่ด้านล่างของไฟล์ build.gradle
ของโมดูลแอปพลิเคชันเพื่อเปิดใช้งานปลั๊กอิน gradle:
apply plugin: 'com.huawei.agconnect'
กำหนดค่าการพึ่งพา
ในส่วน dependencies
ของไฟล์ gradle
ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้ โดยเลือกเวอร์ชันล่าสุดตามการเผยแพร่ของ Huawei:
dependencies {
implementation 'com.huawei.hms:push:6.11.0.300'
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน SDK ของ AppPush
implementation 'com.engagelab.plugin:huawei:5.x.x'
}
กำหนดค่าไฟล์ agconnect-services.json
อ้างอิง คู่มือการสมัครพารามิเตอร์ช่องทางผู้ผลิต เพื่อรับไฟล์ agconnect-services.json
และกำหนดค่าในไดเรกทอรี app
กำหนดค่าใบรับรองลายเซ็น
ในไฟล์ build.gradle
ให้กำหนดค่าลายเซ็นที่ตรงกับใบรับรองลายนิ้วมือที่เพิ่มใน Huawei backend
บริการ HMS ต้องการให้แอปมีการลงนามเพื่อการลงทะเบียนที่สำเร็จ คุณสามารถรับใบรับรองลายนิ้วมือที่สอดคล้องกันโดยใช้คำสั่ง
keytool -list -v -keystore keystorefileName
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
}
}
กำหนดค่าการป้องกันโค้ด
หากใช้ 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.**{*;}
หากคุณใช้ 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*"
### การตรวจสอบความสำเร็จของการผสานรวม
หากการผสานรวมสำเร็จ บันทึกจะปรากฏดังนี้:
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"

2\. หลังจากปิดกระบวนการแอป ให้ทำการ push หากได้รับ push การผสานรวมช่องทางผู้ผลิตสำเร็จ
## คู่มือการผสานรวมช่องทาง Meizu
### การตั้งค่า mavenCentral Support
ในไฟล์ gradle หลักของไดเรกทอรี root ของ Project ให้ตั้งค่า mavenCentral support (โครงการใหม่มักจะตั้งค่าการสนับสนุนนี้โดยค่าเริ่มต้น)
buildscript {
repositories {
mavenCentral()
}
}
allprojects {
repositories {
mavenCentral()
}
}
### การตั้งค่าการพึ่งพา
ในส่วน `dependencies` ของไฟล์ `gradle` ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
dependencies { // เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK implementation 'com.engagelab.plugin:meizu:5.x.x' }
### การตั้งค่าพารามิเตอร์
ในส่วน `defaultConfig` ของไฟล์ `gradle` ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
> พารามิเตอร์สำหรับ Meizu ต้องมีคำนำหน้าด้วย "MZ-"
manifestPlaceholders = [ // ตั้งค่าตัวแปรในไฟล์ manifest.xml MEIZU_APPKEY : "MZ-Your Meizu app's APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม Meizu MEIZU_APPID : "MZ-Your Meizu app's APPID", // appid ที่ลงทะเบียนในแพลตฟอร์ม Meizu ]
### การตั้งค่าการลบโค้ด
หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การตั้งค่าเพื่อป้องกันการรายงานคำเตือนที่ผิดพลาดซึ่งอาจทำให้การคอมไพล์ไม่สำเร็จ:
-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 }
หากช่องทาง Meizu ไม่สามารถรับ token ได้ ให้ลองเพิ่ม `android.enableR8 = false` ใน `gradle.properties` เพื่อปิดใช้งาน R8
### วิธีการทดสอบช่องทางผู้ผลิต Meizu
1. ไปที่ \[EngageLab Console] -> \[AppPush] -> \[Basic Settings] -> \[Integration Settings] หน้าจอ ใส่พารามิเตอร์: AppKey, AppID, AppSecret และคลิก "Save"

2. หลังจากปิดกระบวนการแอป ให้ทำการ push หากได้รับ push การผสานรวมช่องทางผู้ผลิตสำเร็จ
## คู่มือการผสานรวมช่องทาง Vivo
### การตั้งค่า mavenCentral Support
ในไฟล์ gradle หลักของไดเรกทอรี root ของ Project ให้ตั้งค่า mavenCentral support (โครงการใหม่มักจะตั้งค่าการสนับสนุนนี้โดยค่าเริ่มต้น)
buildscript {
repositories {
mavenCentral()
}
}
allprojects {
repositories {
mavenCentral()
}
}
### การตั้งค่าการพึ่งพา
ในส่วน `dependencies` ของไฟล์ `gradle` ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
dependencies{
// เวอร์ชันของผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK
implementation 'com.engagelab.plugin:vivo:5.x.x'
}
### การตั้งค่าพารามิเตอร์
ในส่วน `defaultConfig` ของไฟล์ `gradle` ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
manifestPlaceholders=[
VIVO_APPKEY : "Your Vivo app's APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม Vivo
VIVO_APPID : "Your Vivo app's 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 }
### การตั้งค่าการลบโค้ด
หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การตั้งค่าเพื่อป้องกันการรายงานคำเตือนที่ผิดพลาดซึ่งอาจทำให้การคอมไพล์ไม่สำเร็จ:
-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"

2\. หลังจากปิดกระบวนการแอป ให้ทำการ push หากได้รับ push การผสานรวมช่องทางผู้ผลิตสำเร็จ
> หาก Vivo ไม่พร้อมใช้งานในตลาด เมื่อทดสอบการ push คุณจำเป็นต้องเพิ่มอุปกรณ์ทดสอบในแพลตฟอร์ม push ของ Vivo และส่ง push โดยใช้ 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"
}
}
}
## คู่มือการผสานรวมช่องทาง OPPO
### การตั้งค่า mavenCentral Support
ในไฟล์ gradle หลักของไดเรกทอรี root ของ Project ให้ตั้งค่า mavenCentral support (โครงการใหม่มักจะตั้งค่าการสนับสนุนนี้โดยค่าเริ่มต้น)
buildscript {
repositories {
mavenCentral()
}
}
allprojects {
repositories {
mavenCentral()
}
}
### การตั้งค่าการพึ่งพา
ในส่วน `dependencies` ของไฟล์ `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.8.9'
implementation 'commons-codec:commons-codec:1.13'
implementation 'androidx.annotation:annotation:1.1.0'
}
### การตั้งค่าพารามิเตอร์
ในส่วน `defaultConfig` ของไฟล์ `gradle` ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
> พารามิเตอร์ของ OPPO ต้องมีคำนำหน้าด้วย "OP-"
manifestPlaceholders=[
OPPO_APPKEY : "OP-Your OPPO app's APPKEY", // appkey ที่ลงทะเบียนในแพลตฟอร์ม OPPO
OPPO_APPID : "OP-Your OPPO app's APPID", // appid ที่ลงทะเบียนในแพลตฟอร์ม OPPO
OPPO_APPSECRET: "OP-Your OPPO app's 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.** { *; }
### การตรวจสอบความสำเร็จของการผสานรวม
หากการผสานรวมสำเร็จ บันทึกจะปรากฏดังนี้:
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"

2. หลังจากปิดกระบวนการแอปพลิเคชัน ให้ทำการ Push หากได้รับ Push การรวมช่องทางผู้ผลิตสำเร็จ
> หากแอปไม่พร้อมใช้งาน การทดสอบต้องสมัครสิทธิ์ทดสอบ Push บนแพลตฟอร์ม OPPO แต่ละแอปสามารถ Push ข้อความสาธารณะได้ 1000 ข้อความต่อวัน
## คู่มือการรวมช่องทาง FCM
### การตั้งค่าการสนับสนุน mavenCentral
ในไฟล์ gradle หลักของไดเรกทอรีรากของโปรเจกต์ ให้ตั้งค่าการสนับสนุน mavenCentral และการพึ่งพา google-services
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.google.gms:google-services:4.3.15' } }
allprojects { repositories { mavenCentral() maven { url "https://maven.google.com" } } }
### เพิ่มปลั๊กอิน FCM
ที่ด้านล่างของไฟล์ `build.gradle` ของโมดูลแอปพลิเคชัน ให้เพิ่มบรรทัดต่อไปนี้เพื่อเปิดใช้งานปลั๊กอิน gradle:
apply plugin: 'com.google.gms.google-services'
### การตั้งค่าการพึ่งพา
ในส่วน `dependencies` ของไฟล์ `gradle` ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
dependencies { // เวอร์ชันผู้ผลิตควรตรงกับเวอร์ชัน AppPush SDK implementation 'com.engagelab.plugin:google:5.x.x' implementation 'com.google.firebase:firebase-messaging:23.2.0' }
ในส่วน `android` ของไฟล์ `gradle` ของโมดูลแอปพลิเคชัน ให้เพิ่มโค้ดต่อไปนี้:
android { // google push ต้องการ java 1.8 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
### การตั้งค่าไฟล์ google-services.json
อ้างอิง \[คู่มือการสมัครพารามิเตอร์ช่องทางผู้ผลิต](https://www.engagelab.com/zh_CN/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`

### การตั้งค่าไอคอนการแจ้งเตือน FCM
เพิ่มการตั้งค่าต่อไปนี้ในไฟล์ AndroidManifest.xml เพื่อกำหนดไอคอนการแจ้งเตือน FCM:
### การตรวจสอบความสำเร็จของการรวม
หากการรวมสำเร็จ จะมีการแสดงผลลัพธ์ใน 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 }
### วิธีการทดสอบช่องทาง FCM
1. เงื่อนไขเบื้องต้นสำหรับการทดสอบ:
* ระบบโทรศัพท์ต้องมี Google Play services เวอร์ชัน 17.3.4 หรือสูงกว่า
* การทดสอบต้องเชื่อมต่อกับ VPN ต่างประเทศและตรวจสอบให้แน่ใจว่าเครือข่ายโทรศัพท์สามารถเข้าถึง Google ได้
* หากใช้โทรศัพท์ในประเทศสำหรับการทดสอบ แอปต้องทำงานในพื้นหลัง; การทดสอบจะล้มเหลวหากแอปถูกปิด เนื่องจากผู้ผลิตในประเทศอาจปิดกระบวนการในพื้นหลัง
2. ไปที่ \[EngageLab Console] -> \[AppPush] -> \[Basic Settings] -> \[Integration Settings] หน้า, ป้อนพารามิเตอร์: App Secret และคลิก "Save"

3. หากทดสอบในประเทศจีน คุณต้องตั้งค่ารหัสประเทศหลังการเริ่มต้น
```java
public class ExampleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
MTCorePrivatesApi.configDebugMode(this, true);
// ตั้งค่ารหัสประเทศ -- ไม่ควรตั้งค่านี้ในสภาพแวดล้อมการผลิต
MTGlobal.setCountryCode("US");
// เริ่มต้น
MTPushPrivatesApi.init(this);
}
}
- ใน backend ของ AppPush ให้ตรวจสอบว่าการ Push ถูกส่งผ่านช่องทาง FCM หรือช่องทาง EngageLab
คู่มือการรวมช่องทาง Honor
การตั้งค่าการสนับสนุน mavenCentral
ในไฟล์ gradle หลักของไดเรกทอรีรากของโปรเจกต์ ให้ตั้งค่าการสนับสนุน mavenCentral (โปรเจกต์ใหม่มักจะตั้งค่าการสนับสนุนนี้โดยค่าเริ่มต้น)
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojets {
repositories {
...
mavenCentral()
...
}
}
การตั้งค่าพารามิเตอร์และการพึ่งพา
ในไฟล์ build.gradle
ของโมดูลโปรเจกต์ ให้เพิ่มโค้ดต่อไปนี้:
defaultConfig {
...
manifestPlaceholders = [
...
HONOR_APPID : "Your Honor app's 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 <path to the keystore file>
การตรวจสอบความสำเร็จของการรวม
หากการรวมสำเร็จ จะมีการแสดงผลลัพธ์ใน 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
}
การตั้งค่าการปกปิดโค้ด
หากใช้ proguard ให้เพิ่มเนื้อหาต่อไปนี้ในไฟล์การตั้งค่าเพื่อป้องกันการรายงานคำเตือนที่ผิดพลาดซึ่งอาจทำให้การคอมไพล์ล้มเหลว:
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hihonor.push.**{*;}
วิธีการทดสอบช่องทาง Honor
- ไปที่ [EngageLab Console] -> [AppPush] -> [Basic Settings] -> [Integration Settings] หน้า, ป้อนพารามิเตอร์: App ID, Client ID, Client Secret, App Secret และคลิก "Save"
- หลังจากปิดกระบวนการแอปพลิเคชัน ให้ทำการ 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, 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 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)