การดำเนินการและ Deep Link
เพิ่มปุ่มและเปิดหน้าจอที่ถูกต้อง
การดำเนินการและ Deep Link เป็นบทเรียน Android Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Android Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Android Academy มีบทเรียนทั้งหมด 4 บทเรียน
การดำเนินการและลิงก์เชิงลึก
การแจ้งเตือนจะมีประโยชน์เมื่อสามารถ ทำบางอย่างได้ การแตะควรเปิดหน้าจอที่ถูกต้อง และปุ่มการดำเนินการควรทำงานด่วนได้ ทั้งสองอย่างอาศัย PendingIntent
PendingIntent คืออะไร
PendingIntent คือโทเค็นที่คุณส่งให้ระบบ เพื่อให้ระบบสามารถเรียกใช้ Intent แทนคุณในภายหลังได้ แม้แอปของคุณจะไม่ได้ทำงานอยู่ก็ตาม การแจ้งเตือนใช้สิ่งนี้เพื่อเปิดกิจกรรมของคุณ
การสร้าง Content PendingIntent
สร้าง Intent สำหรับหน้าจอที่จะเปิด ห่อหุ้มไว้ใน PendingIntent แล้วแนบด้วย setContentIntent เพื่อให้การแตะเปิดหน้าจอนั้น
val intent = Intent(context, MainActivity::class.java)
val pending = PendingIntent.getActivity(
context, 0, intent,
PendingIntent.FLAG_IMMUTABLE
)
builder.setContentIntent(pending).setAutoCancel(true)แฟล็กความสามารถในการเปลี่ยนแปลง
ตั้งแต่ Android 12 เป็นต้นมา PendingIntent ต้องระบุ FLAG_IMMUTABLE หรือ FLAG_MUTABLE ควรเลือกใช้ FLAG_IMMUTABLE เว้นแต่ระบบจำเป็นต้องเติมข้อมูลให้ เช่น การตอบกลับบางประเภท
การเพิ่มปุ่มการดำเนินการ
ใช้ addAction พร้อมไอคอน ป้ายกำกับ และ PendingIntent เพื่อเพิ่มปุ่มที่แตะได้ในการแจ้งเตือน เช่น "ตอบกลับ" หรือ "ทำเครื่องหมายว่าอ่านแล้ว"
builder.addAction(
R.drawable.ic_reply,
"Reply",
replyPendingIntent
)การดำเนินการเรียกใช้คอมโพเนนต์
PendingIntent ของการดำเนินการสามารถกำหนดเป้าหมายเป็นกิจกรรม บริการ หรือ BroadcastReceiver ได้ ปุ่ม "ทำเครื่องหมายว่าอ่านแล้ว" มักกำหนดเป้าหมายเป็นตัวรับ เพื่อให้ทำงานได้โดยไม่ต้องเปิดหน้าจอใด
val markIntent = Intent(context, MarkReadReceiver::class.java)
val markPending = PendingIntent.getBroadcast(
context, 0, markIntent, PendingIntent.FLAG_IMMUTABLE
)การใช้ลิงก์เชิงลึกไปยังหน้าจอ
ลิงก์เชิงลึก จะเปิดปลายทางที่เฉพาะเจาะจงภายในแอป ไม่ใช่เพียงหน้าจอหลัก ด้วย Navigation Compose คุณสามารถสร้าง PendingIntent ที่นำไปยังเส้นทางที่ระบุไว้อย่างชัดเจนได้
การสร้าง Deep Link PendingIntent
คอมโพเนนต์ Navigation มี NavDeepLinkBuilder (หรือ Intent ของลิงก์เชิงลึกที่มี URI) สำหรับสร้าง PendingIntent ที่กำหนดเป้าหมายเป็นปลายทางและอาร์กิวเมนต์
val deepLinkPending = NavDeepLinkBuilder(context)
.setGraph(R.navigation.nav_graph)
.setDestination(R.id.chatScreen)
.setArguments(bundleOf("chatId" to "42"))
.createPendingIntent()ลิงก์เชิงลึกที่อ้างอิง URI
คุณยังสามารถลงทะเบียนรูปแบบ URI ในกราฟการนำทาง แล้วสร้าง Intent ด้วย Uri นั้นได้ เมื่อแตะการแจ้งเตือน ระบบจะนำทางตรงไปยังหน้าจอที่ตรงกัน
val intent = Intent(
Intent.ACTION_VIEW,
"myapp://chat/42".toUri(),
context, MainActivity::class.java
)การคงสแต็กย้อนกลับไว้
สำหรับลิงก์เชิงลึก ตรวจสอบให้แน่ใจว่าสแต็กย้อนกลับมีลำดับที่เหมาะสม เพื่อให้การกด Back กลับไปยังหน้าจอแม่แทนการออกจากแอป TaskStackBuilder หรือตัวสร้างลิงก์เชิงลึกของระบบนำทางจะจัดการเรื่องนี้ให้
รหัสคำขอที่ไม่ซ้ำกัน
หากคุณสร้าง PendingIntents หลายรายการที่แตกต่างกัน ให้รหัสคำขอแต่ละรายการแตกต่างกันด้วย (อาร์กิวเมนต์ตัวที่สอง) Intent ที่เหมือนกันและใช้รหัสเดียวกันจะถูกถือว่าเป็น PendingIntent เดียวกัน
ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจของคุณเกี่ยวกับการดำเนินการและลิงก์เชิงลึก
สรุปทบทวน
คุณได้เพิ่มการโต้ตอบแล้ว:
PendingIntentทำให้ระบบดำเนินการแทนคุณได้ ควรใช้FLAG_IMMUTABLEsetContentIntentกำหนดการทำงานเมื่อแตะaddActionเพิ่มปุ่มที่กำหนดเป้าหมายเป็นกิจกรรม บริการ หรือตัวรับ- ลิงก์เชิงลึกเปิดหน้าจอที่ระบุได้โดยคงสแต็กย้อนกลับไว้
ถัดไป: สิทธิ์ขณะทำงานสำหรับการแจ้งเตือน
คำถามที่พบบ่อย
บทเรียน “การดำเนินการและ Deep Link” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การดำเนินการและ Deep Link” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Android Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Android Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การดำเนินการและ Deep Link”
เพิ่มปุ่มและเปิดหน้าจอที่ถูกต้อง คุณปฏิบัติ Android Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Android Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Android Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การดำเนินการและ Deep Link” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Android Academy นี้ได้ไหม
ได้ บทเรียน Android Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ช่องการแจ้งเตือน
- การสร้างการแจ้งเตือน
- การดำเนินการและ Deep Link
- สิทธิ์การแจ้งเตือนขณะทำงาน