คู่มือการย้ายข้อมูล
การย้ายข้อมูลจาก Android SDK 5 ไปยัง 6
Anchor link to- ย้ายโปรเจกต์ของคุณไปยัง AndroidX ตาม เอกสารอย่างเป็นทางการ
- เพิ่มโมดูลใหม่ในไฟล์ build.gradle ของแอป หากคุณใช้ Firebase Cloud Messaging
implementation 'com.pushwoosh:pushwoosh-firebase:+'สำหรับผู้ที่ใช้ Amazon และไม่ได้ใช้ Firebase ไม่จำเป็นต้องมีการเปลี่ยนแปลงใดๆ
การย้ายข้อมูลจาก Android SDK เวอร์ชันก่อนหน้า
Anchor link toคลาสและเมธอดส่วนใหญ่ของ Pushwoosh กลายเป็น deprecated ตั้งแต่เวอร์ชัน 5.0 และบางส่วนก็ถูกยกเลิกไปแล้ว คลาส PushManager, BasePushMessageReceiver, BaseRegistrationReceiver, SendPushTagsCallback, PushFragment และ PushEventListener ยังคงมีให้ใช้งานในส่วนของไลบรารี com.pushwoosh:pushwoosh-deprecated แต่ขอแนะนำให้ย้ายไปใช้ API ใหม่โดยเร็วที่สุด
PushManager
Anchor link toPushManager ประกอบด้วยเมธอดต่างๆ สำหรับฟีเจอร์ที่แตกต่างกัน เมธอดเหล่านี้ถูกแบ่งออกเป็นคลาสและไลบรารีต่างๆ ดังนี้:
com.pushwoosh:pushwoosh: Pushwoosh, PushwooshNotificationSettings, PushwooshInApp.
com.pushwoosh:pushwoosh-badge: PushwooshBadge.
com.pushwoosh:pushwoosh-location: PushwooshLocation.
com.pushwoosh:pushwoosh-beacon: PushwooshBeacon.
BaseRegistrationReceiver
Anchor link toBaseRegistrationReceiver เคยใช้เพื่อจัดการเหตุการณ์การลงทะเบียนและยกเลิกการลงทะเบียน push ปัจจุบัน receiver นี้ถูกแทนที่ด้วยกลไก callback แบบง่าย:
Pushwoosh.getInstance().registerForPushNotifications(result -> { if (result.isSuccess()) { String token = result.getData(); // จัดการการลงทะเบียนสำเร็จ } else { PushwooshException exception = result.getException(); // จัดการข้อผิดพลาดในการลงทะเบียน }});BasePushMessageReceiver
Anchor link toBasePushMessageReceiver เคยใช้เพื่อเลียนแบบพฤติกรรมการแจ้งเตือนของ iOS เมื่อได้รับ push notification ขณะที่แอปพลิเคชันอยู่เบื้องหน้า ทำได้โดยการยกเลิกการแจ้งเตือนที่เข้ามาและเรียกใช้ callback onMessageReceive ซึ่งเป็นวิธีที่ยุ่งยากและต้องมีการลงทะเบียนด้วยตนเองเมื่อแอปพลิเคชันทำงานและยกเลิกการลงทะเบียนเมื่อแอปพลิเคชันย้ายไปอยู่เบื้องหลัง
receiver นี้ถูกแทนที่ด้วย NotificationServiceExtension:
<meta-data android:name="com.pushwoosh.notification_service_extension" android:value="com.your.package.name.YourNotificationServiceExtension"/>public class YourNotificationServiceExtension extends NotificationServiceExtension { @Override public boolean onMessageReceived(final PushMessage message) { if (isAppOnForeground()) { Handler mainHandler = new Handler(getApplicationContext().getMainLooper()); mainHandler.post(() -> { handlePush(message); });
// นี่แสดงว่าไม่ควรแสดงการแจ้งเตือน return true; }
return false; }
@Override protected void startActivityForPushMessage(PushMessage message) { super.startActivityForPushMessage(message); handlePush(message); }
@MainThread private void handlePush(PushMessage message) { // TODO: จัดการ push message }}extension นี้ยังใช้เพื่อจัดการการมาถึงของการแจ้งเตือนและเหตุการณ์การยอมรับ ซึ่งจะมาแทนที่โค้ดที่ยุ่งยากทั้งหมดที่เคยใช้ในการรวม Activity ด้วยตนเอง
PushFragment
Anchor link toPushFragment เป็นทางเลือกที่เบากว่าสำหรับการรวมระบบที่ซับซ้อนซึ่งเกี่ยวข้องกับวงจรชีวิตของ Activity แต่อีกด้านหนึ่งก็ต้องมีการสืบทอด FragmentActivity และใช้วงจรชีวิตของ Fragment ที่ซับซ้อนกว่าโดยปริยาย
PushFragment และ PushEventListener ถูกแทนที่ด้วย Pushwoosh#registerForPushNotifications(Callback) และ NotificationServiceExtension แล้ว
Custom Push Broadcast Receiver (PW_NOTIFICATION_RECEIVER)
Anchor link toPW_NOTIFICATION_RECEIVER เคยใช้เพื่อปรับแต่งพฤติกรรมเมื่อผู้ใช้คลิกการแจ้งเตือน ซึ่งช่วยให้สามารถจัดการการแจ้งเตือนนอกบริบทของ Activity และเปิด Activity ที่แตกต่างกันได้ขึ้นอยู่กับเนื้อหาของการแจ้งเตือน การรวมระบบนี้ใช้ Pushwoosh SDK API ภายในซึ่งไม่มีอยู่อีกต่อไปแล้ว
receiver นี้ถูกแทนที่ทั้งหมดด้วย NotificationServiceExtension:
public class YourNotificationServiceExtension extends NotificationServiceExtension { @Override protected void startActivityForPushMessage(PushMessage message) { // super.startActivityForPushMessage() จะเริ่ม Activity ตัวเปิดใช้งานเริ่มต้น // หรือ Activity ที่ทำเครื่องหมายด้วย ${applicationId}.MESSAGE action // เพียงแค่ไม่ต้องเรียกใช้เพื่อแทนที่พฤติกรรมนี้ // super.startActivityForPushMessage(message);
// เริ่ม Activity ของคุณแทน: Intent launchIntent = new Intent(getApplicationContext(), YourActivity.class); launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
// (ไม่บังคับ) ส่งข้อมูลการแจ้งเตือนไปยัง Activity launchIntent.putExtra(Pushwoosh.PUSH_RECEIVE_EVENT, message.toJson().toString());
context.startActivity(launchIntent); }}Notification Factory
Anchor link toนอกจากนี้ยังมีการเปลี่ยนแปลงที่สำคัญบางอย่างที่เกี่ยวข้องกับ notification factory:
1. AbsNotificationFactory ถูกแทนที่ด้วย NotificationFactory
2. เมธอด AbsNotificationFactory#onPushReceived(PushData) และ AbsNotificationFactory#onPushHandle(Activity) ถูกแทนที่ด้วยคลาส NotificationServiceExtension (onMessageReceived, startActivityForPushMessage).
3. DefaultNotificationFactory ถูกแทนที่ด้วย PushwooshNotificationFactory.
4. PushData ถูกแทนที่ด้วย PushMessage.
In-App Messages
Anchor link to1. InAppFacade ถูกแทนที่ด้วย PushwooshInApp.
2. ออบเจกต์ pushwoosh ถูกนำมาใช้สำหรับอินเทอร์เฟซ JavaScript native พร้อม API ดังต่อไปนี้:
getHwid(): string - ส่งคืน pushwoosh hwid สำหรับอุปกรณ์ปัจจุบัน
getVersion(): string - ส่งคืนเวอร์ชัน Pushwoosh SDK ปัจจุบัน
postEvent(event: string, attributes?: object, successCallback?: function, errorCallback?: function) - ส่งคำขอ postEvent
sendTags(tags: object) - ส่ง tags ที่เกี่ยวข้องกับอุปกรณ์ปัจจุบัน
getTags(successCallback: function, errorCallback?: function) - ส่งคืน tags ที่เกี่ยวข้องกับอุปกรณ์ปัจจุบัน
closeInApp() - ปิดหน้า HTML In-App
แบ่งปันความคิดเห็นของคุณกับเรา
Anchor link toความคิดเห็นของคุณช่วยให้เราสร้างประสบการณ์ที่ดีขึ้น ดังนั้นเรายินดีรับฟังจากคุณหากคุณมีปัญหาใดๆ ในระหว่างกระบวนการ SDK integration หากคุณประสบปัญหาใดๆ โปรดอย่าลังเลที่จะแบ่งปันความคิดเห็นของคุณกับเรา ผ่านแบบฟอร์มนี้