Interactive Notification คือการแจ้งเตือนแบบ push ที่มีองค์ประกอบแบบโต้ตอบ ซึ่งช่วยให้ดำเนินการได้โดยไม่ต้องเปิดแอป ตาม Apple Human Interface Guidelines (2025) การแจ้งเตือนเหล่านี้ลดจำนวนขั้นตอนไปยังการดำเนินการเป้าหมายลง 40% ปุ่มดำเนินการ และช่องป้อนข้อมูลช่วยให้ผู้ใช้ตอบกลับข้อความ ชำระค่าสมัครสมาชิก หรือยืนยันการจองได้โดยตรงจากแผงการแจ้งเตือนโดยไม่ต้องเปิดแอป
ประเด็นสำคัญ
Interactive Notification คือรูปแบบเพิ่มเติมของการแจ้งเตือนแบบ push ที่มีตัวควบคุมแบบโต้ตอบ: ปุ่ม สวิตช์ และช่องป้อนข้อความ ต่างจากการแจ้งเตือนมาตรฐานที่แจ้งให้ทราบเท่านั้น การแจ้งเตือนแบบโต้ตอบช่วยให้ผู้ใช้ดำเนินการเป้าหมายได้โดยตรงจากแผงการแจ้งเตือนหรือหน้าจอล็อก ตาม Google Material Design (2025) การแจ้งเตือนแบบโต้ตอบจะถูกประมวลผลโดยระบบปฏิบัติการโดยไม่ต้องเริ่มกระบวนการหลักของแอป — ซึ่งช่วยประหยัดทรัพยากรแบตเตอรี่และเร่งเวลาในการตอบสนอง นักพัฒนากำหนดชุดของการดำเนินการผ่านหมวดหมู่บน iOS และช่องทางบน Android และระบบจะแสดงตามบริบท
การแจ้งเตือนแบบโต้ตอบแต่ละรายการประกอบด้วยสามระดับ: เนื้อหาหลัก (หัวเรื่อง เนื้อหา), การดำเนินการ (ปุ่ม) และการป้อนข้อความเสริม บน iOS ส่วนประกอบเหล่านี้จะรวมกันผ่าน UNNotificationCategory และบน Android — ผ่าน NotificationCompat.Action.Builder ระบบจะแสดงปุ่มใต้ข้อความการแจ้งเตือนในมุมมองแบบย่อหรือขยายขึ้นอยู่กับเวอร์ชันของระบบปฏิบัติการและความยาวของข้อความ ผู้ใช้จะเห็นการดำเนินการที่มีให้ทันทีหลังจากได้รับการแจ้งเตือนและสามารถดำเนินการหนึ่งในนั้นได้โดยไม่ต้องสลับไปที่แอป
กลไกการทำงานของ Interactive Notification แบ่งออกเป็นสองระยะ: การลงทะเบียนหมวดหมู่เมื่อเริ่มต้นแอปและการประมวลผลการดำเนินการเมื่อผู้ใช้แตะ ในขั้นตอนการลงทะเบียน นักพัฒนาจะสร้างวัตถุหมวดหมู่พร้อมชุดของการดำเนินการ — แต่ละการดำเนินการมีตัวระบุ หัวเรื่อง และตัวเลือก เมื่อได้รับการแจ้งเตือนแบบ push ระบบจะจับคู่กับหมวดหมู่ที่ลงทะเบียนไว้ผ่านฟิลด์ categoryIdentifier และเพิ่มปุ่มที่เกี่ยวข้องโดยอัตโนมัติ เมื่อผู้ใช้แตะปุ่ม ระบบจะเรียกตัวแทน UNUserNotificationCenter หรือ PendingIntent บน Android พร้อมตัวระบุการดำเนินการและส่งผลลัพธ์กลับไปยังแอป ตาม WWDC 2024 เวลาในการประมวลผลการดำเนินการแบบโต้ตอบบน iOS ไม่เกิน 200 มิลลิวินาทีเมื่อกำหนดค่าอย่างถูกต้อง
การแจ้งเตือนแบบโต้ตอบ แบ่งออกเป็นสามประเภทหลักตามวิธีการโต้ตอบ: แบบปุ่ม แบบข้อความ และแบบมัลติมีเดีย แต่ละประเภทแก้ปัญหาของตนเองและใช้ในสถานการณ์เฉพาะ การเลือกประเภทขึ้นอยู่กับบริบท — ยิ่งผู้ใช้ต้องการขั้นตอนน้อยลง อัตราการแปลงก็จะยิ่งสูงขึ้น Apple และ Google แนะนำให้ใช้ปุ่มสำหรับการยืนยัน ช่องป้อนข้อมูลสำหรับการตอบกลับ และสื่อสำหรับการแสดงตัวอย่างเนื้อหา
ประเภทที่พบบ่อยที่สุดคือการแจ้งเตือนที่มีหนึ่งปุ่มหรือมากกว่า ปุ่ม แต่ละปุ่มดำเนินการที่กำหนดไว้ล่วงหน้า ตัวอย่างเช่น ปุ่ม “ยอมรับ” และ “ปฏิเสธ” สำหรับกิจกรรมในปฏิทิน “ถูกใจ” และ “ตอบกลับ” สำหรับข้อความ iOS รองรับสูงสุดสี่ปุ่ม Android — สูงสุดสามปุ่ม สามารถจัดกลุ่มปุ่มตามลำดับความสำคัญ: ปกติและทำลายล้าง (พร้อมการยืนยัน) Apple แนะนำไม่เกินสองปุ่มหลักเพื่อความสะดวกของผู้ใช้บนหน้าจอล็อก
RemoteInput คือเทคโนโลยีที่ช่วยให้ผู้ใช้ป้อนข้อความโดยตรงในการแจ้งเตือนโดยไม่ต้องเปิดแอป บน iOS ใช้ UNTextInputNotificationAction สำหรับสิ่งนี้ บน Android — RemoteInput.Builder พร้อมคีย์เพื่อแยกข้อความที่ป้อน มักใช้ในแอปแชทสำหรับตอบกลับข้อความอย่างรวดเร็ว ข้อความที่ป้อนจะถูกส่งไปยังแอปผ่านบริการการแจ้งเตือนหรือตัวจัดการภายใน ข้อจำกัดคือข้อความไม่สามารถมีการจัดรูปแบบได้ มีเพียงสตริงธรรมดา
การแจ้งเตือนที่มี ไฟล์แนบมัลติมีเดีย ช่วยให้แสดงรูปภาพ เสียง และวิดีโอโดยตรงในแผงการแจ้งเตือน บน iOS สิ่งนี้ทำผ่าน UNNotificationAttachment บน Android — ผ่าน NotificationCompat.MessagingStyle กับ BigPictureStyle สื่อถูกโหลดโดยเซิร์ฟเวอร์ผู้ให้บริการ push และส่งพร้อมกับการแจ้งเตือนเป็นไฟล์แนบ ขนาดไฟล์แนบมีจำกัด — Apple แนะนำไม่เกิน 10 MB Google — ไม่เกิน 1 MB สำหรับรูปภาพ เนื้อหามัลติมีเดียช่วยเพิ่มความครบถ้วนของข้อมูลในการแจ้งเตือนสำหรับข่าวสาร ตลาดซื้อขาย และเครือข่ายสังคม
บน iOS Interactive Notification ถูกนำไปใช้ผ่านเฟรมเวิร์ก UserNotifications โดยใช้ UNNotificationCategory และ UNNotificationAction แอปจะลงทะเบียนหมวดหมู่เมื่อเริ่มต้น และเมื่อได้รับการแจ้งเตือน ระบบจะแสดงปุ่มที่เกี่ยวข้องโดยอัตโนมัติ ในการจัดการการดำเนินการ จำเป็นต้องใช้เมธอด userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler ด้านล่างเป็นตัวอย่างการลงทะเบียนหมวดหมู่ด้วยปุ่มและการป้อนข้อความใน Swift
import UserNotifications
let replyAction = UNTextInputNotificationAction(
identifier: "reply",
title: "ตอบกลับ",
options: [.authenticationRequired],
textInputButtonTitle: "ส่ง",
textInputPlaceholder: "ป้อนข้อความ…"
)
let category = UNNotificationCategory(
identifier: "message",
actions: [replyAction],
intentIdentifiers: [],
options: []
)
UNUserNotificationCenter.current()
.setNotificationCategories([category])
หลังจากเรียก setNotificationCategories ระบบจะบันทึกหมวดหมู่และใช้สำหรับการแจ้งเตือนทั้งหมดต่อไป ควรเรียกใช้โค้ดทุกครั้งที่เริ่มต้นแอปเพื่อซิงโครไนซ์หมวดหมู่กับเวอร์ชันใหม่ การจัดการการตอบสนองจะดำเนินการในตัวแทนของศูนย์การแจ้งเตือน — แอปจะรับตัวระบุการดำเนินการและข้อความที่ป้อนสำหรับการประมวลผลเพิ่มเติม
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completion: @escaping VoidBlock
) {
if response.actionIdentifier == "reply" {
let textResponse = response as! UNTextInputNotificationResponse
let message = textResponse.userText
sendMessage(message)
}
completion()
}
เมธอด userNotificationCenter ถูกเรียกโดยระบบหลังจากผู้ใช้กดปุ่มหรือส่งข้อความ ภายในตัวจัดการ จะตรวจสอบ actionIdentifier — หากตรงกับตัวระบุที่ลงทะเบียนไว้ แอปจะแยกข้อความที่ป้อนจาก userText และส่งไปยังเซิร์ฟเวอร์ สำหรับปุ่มปกติที่ไม่มีการป้อนข้อความ จะใช้ UNNotificationResponse โดยไม่ต้องแปลงชนิด
บน Android การแจ้งเตือนแบบโต้ตอบ ถูกสร้างขึ้นผ่านคลาส NotificationCompat ด้วยเมธอด addAction และ RemoteInput แตกต่างจาก iOS ตรงที่ Android ไม่ต้องการการลงทะเบียนหมวดหมู่ล่วงหน้า — การดำเนินการจะถูกเพิ่มโดยตรงในการแจ้งเตือนแต่ละรายการผ่าน Builder สิ่งนี้ให้ความยืดหยุ่นมากขึ้น: การแจ้งเตือนแต่ละรายการสามารถมีชุดปุ่มที่ไม่ซ้ำกัน ด้านล่างเป็นตัวอย่างการแจ้งเตือนด้วยปุ่มตอบกลับใน Java โดยใช้ RemoteInput
RemoteInput remoteInput = new RemoteInput.Builder("key_reply")
.setLabel("ตอบกลับ")
.build();
PendingIntent replyIntent = PendingIntent.getBroadcast(
this, 1001,
new Intent("ACTION_REPLY"),
PendingIntent.FLAG_UPDATE_CURRENT
);
NotificationCompat.Action action =
new NotificationCompat.Action.Builder(
R.drawable.ic_reply,
"ตอบกลับ", replyIntent
)
.addRemoteInput(remoteInput)
.build();
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this, "messages")
.setContentTitle("ข้อความใหม่")
.setContentText("สวัสดี! คุณเป็นอย่างไรบ้าง?")
.setSmallIcon(R.drawable.ic_notification)
.addAction(action);
NotificationManagerCompat.from(this)
.notify(100, builder.build());
องค์ประกอบสำคัญคือ RemoteInput ซึ่งเชื่อมต่อช่องป้อนข้อมูลกับการดำเนินการ เมื่อผู้ใช้กดปุ่ม “ตอบกลับ” ระบบจะเปิดกล่องโต้ตอบการป้อนข้อความภายใน การแจ้งเตือน หลังจากส่งข้อความจะถูกส่งผ่าน Intent ไปยัง BroadcastReceiver หรือ Activity ผ่าน PendingIntent ที่ระบุ ในการรับข้อความในตัวรับ จะใช้ RemoteInput.getResultsFromIntent(intent) ด้วยคีย์ “key_reply”
Bundle results = RemoteInput.getResultsFromIntent(intent);
if (results != null) {
CharSequence reply = results.getCharSequence("key_reply");
if (reply != null) {
sendReplyToServer(reply.toString());
}
}
เมธอด getResultsFromIntent แยกข้อความที่ผู้ใช้ป้อนจาก Intent ที่ระบบส่งเมื่อส่งการตอบกลับ ผลลัพธ์จะถูกส่งคืนเป็น CharSequence ซึ่งจะถูกแปลงเป็นสตริงสำหรับส่งไปยังเซิร์ฟเวอร์ หากผู้ใช้ปิดกล่องโต้ตอบการป้อนโดยไม่ส่ง results จะว่างเปล่า — สิ่งนี้ควรพิจารณาในระหว่างการประมวลผล วิธีการนี้ช่วยให้สามารถตอบกลับอย่างรวดเร็วโดยไม่ต้องเริ่ม Activity
Interactive Notification ถูกใช้ในแอปทุกประเภทที่ต้องการการดำเนินการอย่างรวดเร็วจากผู้ใช้ สถานการณ์ที่มีประสิทธิภาพที่สุดคือแอปแชทสำหรับตอบกลับข้อความ อีคอมเมิร์ซสำหรับยืนยันคำสั่งซื้อ และปฏิทินสำหรับยอมรับคำเชิญ ตาม Localytics (2025) แอปที่มีการแจ้งเตือนแบบโต้ตอบแสดงอัตราการรักษาผู้ใช้สูงขึ้น 28% ในวันที่ 7 ด้านล่างเป็นตารางแสดงสถานการณ์ยอดนิยมและคุณสมบัติของแพลตฟอร์ม
| สถานการณ์ | การดำเนินการ | แพลตฟอร์ม |
|---|---|---|
| แอปแชท | ตอบกลับด้วยข้อความ, ถูกใจ | iOS + Android |
| อีคอมเมิร์ซ | ยืนยัน, เลื่อน, ยกเลิก | iOS + Android |
| ปฏิทิน | ยอมรับ, ปฏิเสธ, อาจจะ | iOS |
| ข่าวสาร | บันทึก, แชร์, เปิด | Android |
| การจอง | ยืนยัน, กำหนดใหม่, ยกเลิก | iOS + Android |
เมื่อออกแบบ การแจ้งเตือนแบบโต้ตอบ สิ่งสำคัญคือต้องพิจารณาข้อจำกัด — ผู้ใช้สามารถดำเนินการได้เพียงครั้งเดียว หลังจากกดปุ่ม การแจ้งเตือนจะหายไปหรือเปลี่ยนเป็นสถานะ “เสร็จสิ้น” ดังนั้น แต่ละการดำเนินการควรไม่สามารถย้อนกลับได้หรือมีการยืนยันในขั้นตอนที่สอง
คำถามที่พบบ่อย
Interactive Notification คือการแจ้งเตือนแบบ push ที่มีปุ่ม ช่องป้อนข้อมูล หรือไฟล์แนบมัลติมีเดีย ซึ่งช่วยให้ผู้ใช้ดำเนินการได้โดยไม่ต้องเปิดแอป รองรับบน iOS ผ่าน UserNotifications และบน Android ผ่าน NotificationCompat
การแจ้งเตือนทั่วไปแจ้งให้ทราบเท่านั้น — ผู้ใช้แตะและเปิดแอป การแจ้งเตือนแบบโต้ตอบ มีปุ่มหรือช่องป้อนข้อมูล และการดำเนินการจะดำเนินการโดยตรงในแผงการแจ้งเตือน ซึ่งช่วย缩短เส้นทางไปยังการดำเนินการเป้าหมายและลดภาระของแอป
iOS รองรับสูงสุดสี่ปุ่ม Android — สูงสุดสามปุ่ม บน Android สองปุ่มจะแสดงบนแผงการแจ้งเตือน ปุ่มที่สามอยู่ในเมนูแบบเลื่อนลง Apple แนะนำไม่เกินสองปุ่มหลักเพื่อความสะดวกของผู้ใช้บนหน้าจอล็อก
บน iOS ใช้ UNTextInputNotificationAction บน Android — RemoteInput.Builder พร้อมคีย์ ผู้ใช้ป้อนข้อความในกล่องโต้ตอบภายใน การแจ้งเตือน และแอปได้รับผ่านตัวแทนหรือ Intent โดยไม่ต้องเริ่ม Activity
การรับ การแจ้งเตือนแบบ push ต้องการการเชื่อมต่ออินเทอร์เน็ต แต่การโต้ตอบเอง (การแสดงปุ่ม การป้อนข้อความ) ทำงานแบบออฟไลน์ การส่งผลลัพธ์ไปยังเซิร์ฟเวอร์สามารถเลื่อนออกไปจนกว่าการเชื่อมต่อจะกลับคืนมา
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม