Shortcut คือสถานการณ์ระบบอัตโนมัติในแอป Shortcuts ของ Apple ที่เชื่อมโยงการทำงานของหลายแอปและบริการโดยไม่ต้องเขียนโค้ด Shortcuts ถูกเปิดใช้ด้วยเสียงผ่าน Siri ตามกำหนดเวลา เมื่อเข้าหรือออกจากรัศมีตำแหน่ง การแตะวิดเจ็ต หรือการแตะแท็ก NFC สถานการณ์ถูกสร้างขึ้นด้วยภาพผ่านตัวสร้าง Actions โดยการลากและวางบล็อก สำหรับรายละเอียดเพิ่มเติม โปรดดู คู่มือผู้ใช้ Shortcuts
ประเด็นสำคัญ
Shortcut คือลำดับของการกระทำ (Actions) ที่รวมกันเป็นสถานการณ์เดียวสำหรับการทำงานอัตโนมัติบน iOS, iPadOS, macOS และ watchOS แตกต่างจากแอปทั่วไป Shortcut ไม่มีอินเทอร์เฟสถาวร — มันทำงานในพื้นหลังหรือแสดงไดอะล็อกด่วนสำหรับการป้อนข้อมูลเท่านั้น ผู้ใช้สร้างสถานการณ์ในแอป Shortcuts โดยการรวมบล็อกจากแกลเลอรี Actions และเปิดใช้ด้วยการแตะครั้งเดียว ด้วยเสียง หรือโดยอัตโนมัติผ่านตัวกระตุ้น
แอป Shortcuts — ตัวสร้างระบบอัตโนมัติในตัวของ Apple ที่มีอยู่ในทุกอุปกรณ์ที่ใช้ iOS 13+, iPadOS, macOS 12+ และ watchOS ไลบรารี Actions มีบล็อกในตัวมากกว่า 300 บล็อก: ระบบ (ส่งข้อความ โทร เปิดแอป), มัลติมีเดีย (รูปภาพ เพลง พอดแคสต์), อินเทอร์เน็ต (REST API ผ่าน Get Contents of URL), การทำงานกับไฟล์และเอกสาร แกลเลอรีมีสถานการณ์พร้อมใช้จาก Apple และชุมชน — ตั้งแต่การส่ง ETA ไปยังผู้ติดต่อไปจนถึงการเปลี่ยนชื่อไฟล์เป็นกลุ่ม
ไลบรารี Actions ถูกขยายโดยแอปของบุคคลที่สามผ่านเฟรมเวิร์ก App Intents นักพัฒนาลงทะเบียน intents ใน Intents.intentdefinition และพวกมันจะปรากฏในแกลเลอรี Shortcuts โดยอัตโนมัติ ตัวอย่างเช่น Things 3 เพิ่ม Actions «สร้างงาน» และ «แสดงงานวันนี้» ในขณะที่ CARROT Weather เพิ่ม «พยากรณ์วันนี้» พร้อมพารามิเตอร์ตำแหน่ง
Shortcuts ทำงาน ภายในแซนด์บ็อกซ์ iOS — สถานการณ์ทำงานในกระบวนการพื้นหลังที่เรียกว่า shortcuted โดยมีสิทธิ์จำกัด แต่ละ Action คือการเรียกไปยังตัวจัดการที่กำหนดไว้ล่วงหน้าซึ่งรับพารามิเตอร์อินพุต ดำเนินการ และส่งคืนผลลัพธ์ ระบบส่งผ่านเอาต์พุตของ Action หนึ่งเป็นอินพุตไปยัง Action ถัดไปผ่านไปป์ไลน์ — ผู้ใช้เห็นสิ่งนี้เป็นจุดเชื่อมต่อสีน้ำเงินระหว่างบล็อกในตัวแก้ไข
โฟลว์การดำเนินการ ของ Shortcut เป็นแบบเชิงเส้น: Actions ถูกดำเนินการตามลำดับจากบนลงล่าง การแตกกิ่งแบบมีเงื่อนไขถูกนำมาใช้โดยใช้บล็อก If — ระบบประเมินเงื่อนไขและดำเนินการกิ่งที่เกี่ยวข้อง ลูปพร้อมใช้งาน: Repeat (ทำซ้ำ N ครั้ง), Repeat with Each (วนซ้ำผ่านรายการ) และ For Each ข้อผิดพลาดใน Action หนึ่งขัดจังหวะทั้งสถานการณ์เว้นแต่จะมีการเพิ่มบล็อก Try/Catch
import Intents
class OrderCoffeeIntentHandler: NSObject, OrderCoffeeIntentHandling {
func handle(intent: OrderCoffeeIntent,
completion: @escaping (OrderCoffeeIntentResponse) -> Void) {
let order = Order(coffee: intent.coffee, size: intent.size)
placeOrder(order) { success in
let response = success
? OrderCoffeeIntentResponse.success(coffee: intent.coffee)
: OrderCoffeeIntentResponse.failure(error: "Order failed")
completion(response)
}
}
}
แต่ละ ตัวจัดการ Intents ถูกลงทะเบียนใน Info.plist ผ่านคีย์ INIntentsSupported เมื่อ Shortcut ถูกเปิดใช้ผ่าน Siri ระบบจะค้นหา IntentHandler ที่เหมาะสมและดำเนินการแบบอะซิงโครนัส การตอบสนองจะถูกส่งคืนเป็นออบเจ็กต์ INIntentResponse ที่ประกอบด้วยสถานะ ข้อความ และข้อมูลเสริมสำหรับแสดงให้ผู้ใช้เห็น
การสร้าง Shortcut เริ่มต้นด้วยการแตะ «+» ในแกลเลอรีแอป Shortcuts ผู้ใช้เลือก Actions จากหมวดหมู่: แอป การเขียนสคริปต์ เว็บ ไฟล์ สุขภาพ เพลง และอื่นๆ แต่ละ Action สามารถกำหนดค่าได้ — ฟิลด์อินพุต สวิตช์ รายการ หลังจากการประกอบ สถานการณ์จะถูกทดสอบด้วยปุ่ม Play และบล็อกที่มีปัญหาจะถูกเน้นหากมีข้อผิดพลาด สำหรับการแชร์ Shortcut จะถูกส่งออกเป็นไฟล์ .shortcut สำหรับส่งผ่าน AirDrop หรือ iMessage
ตัวแปรและเวทมนตร์ Shortcuts รองรับตัวแปร — ข้อมูลเอาต์พุตของ Action หนึ่งสามารถส่งต่อไปยังอีก Action ได้ ตัวแปรเวทมนตร์ถูกกำหนดโดยอัตโนมัติ: หาก Action ก่อนหน้่าส่งคืนรูปภาพ ระบบจะแนะนำในพารามิเตอร์ของ Action ถัดไป ผู้ใช้ยังสามารถสร้างตัวแปรที่มีชื่อผ่านบล็อก Set Variable และใช้ที่ใดก็ได้ในสถานการณ์
import AppIntents
struct CreateTaskIntent: AppIntent {
static var title: LocalizedStringResource = "Create Task"
static var description = IntentDescription(
"Creates a new task in your to-do list"
)
@Parameter(title: "Task Title")
var taskTitle: String
func perform() async throws -> some IntentResult {
let task = TaskModel(title: taskTitle)
try await Database.shared.save(task)
return .result(dialog: "Task created")
}
}
App Intents คือเฟรมเวิร์กที่ทันสมัยจาก Apple (iOS 16+, SwiftUI) ที่แทนที่ Intents สำหรับ intents ที่กำหนดเอง แตกต่างจาก SiriKit เดิม App Intents ทำงานโดยไม่ต้องใช้รันไทม์ Objective-C รองรับอะซิงโครนัสผ่าน async/await และสร้างไดอะล็อกสำหรับ Siri โดยอัตโนมัติ struct CreateTaskIntent ถูกทำเครื่องหมายด้วยโปรโตคอล AppIntent และพารามิเตอร์ถูกทำเครื่องหมายด้วยแอตทริบิวต์ @Parameter เฟรมเวิร์กสร้าง Action ในแกลเลอรี Shortcuts โดยอัตโนมัติ
ตัวกระตุ้น Shortcuts คือเงื่อนไขที่สถานการณ์ถูกเปิดใช้โดยอัตโนมัติ การกำหนดค่าทำได้ในแท็บ Automation ในแอป Shortcuts ตัวกระตุ้นแบ่งออกเป็นส่วนบุคคล (เวลา ตำแหน่ง การชาร์จ), การรับรู้ (NFC, การเขย่า), ระบบ (การเปิดแอป โหมดโฟกัส การเชื่อมต่อ CarPlay) และตามเหตุการณ์ (การรับอีเมล เหตุการณ์ในปฏิทิน การแจ้งเตือน) แต่ละตัวกระตุ้นสามารถตั้งค่าให้ดำเนินการทันทีหรือต้องยืนยัน
| ตัวกระตุ้น | เงื่อนไขการเปิดใช้ | ตัวอย่างการใช้งาน |
|---|---|---|
| เวลา | เวลาที่กำหนด พระอาทิตย์ขึ้น/ตก | เปิดห้ามรบกวนเวลา 22:00 น. |
| รัศมีตำแหน่ง | เข้าหรือออกจากพื้นที่ | ส่ง «กำลังกลับบ้าน» เมื่อออกจากที่ทำงาน |
| NFC | การแตะแท็ก NFC | เปิดสถานการณ์ «บ้านอัจฉริยะ» เมื่อแตะแท็ก |
| แอป | การเปิดหรือปิดแอป | เตือนปิดตัวจับเวลาเมื่อปิด YouTube |
| โฟกัส | การเปลี่ยนโหมดโฟกัส | เปิดธีมมืดเมื่อเปิดใช้งานโหมดนอน |
| การชาร์จ | การเชื่อมต่อ/ตัดการเชื่อมต่อไฟ | เปิดวิดเจ็ตการชาร์จเมื่อเชื่อมต่อ MagSafe |
ระบบอัตโนมัติ คือคุณสมบัติสำคัญของ Shortcuts ที่ไม่สามารถใช้ได้กับแอปทั่วไปโดยไม่มีสิทธิ์ของนักพัฒนา ผู้ใช้ตั้งค่าตัวกระตุ้นเพียงครั้งเดียวและลืม — สถานการณ์ทำงานในพื้นหลังโดยไม่ต้องเข้าไปเกี่ยวข้อง ตัวอย่างเช่น ระบบอัตโนมัติ «เมื่อฉันกลับถึงบ้าน ให้เปิด Wi-Fi และปิดโหมดเงียบ» จะถูกกระตุ้นเมื่อเข้ารัศมีตำแหน่งบ้าน ระบบขออนุญาตสำหรับระบบอัตโนมัติในการตั้งค่าครั้งแรกและอาจปิดใช้งานหากใช้งานน้อยครั้ง
Shortcuts บน macOS — ตั้งแต่ macOS 12 Monterey Shortcuts พร้อมใช้งานบน Mac สถานการณ์ซิงค์ผ่าน iCloud ระหว่างอุปกรณ์ Apple ทั้งหมด บน Mac รองรับ Actions ของระบบ: Finder, Terminal, Automator และ AppleScript นักพัฒนา macOS สามารถเพิ่ม Actions ผ่าน App Intents เช่นเดียวกับ iOS
App Intents คือเฟรมเวิร์กหลักสำหรับการรวมแอปกับ Shortcuts บน iOS 16+ และ macOS 13+ นักพัฒนาสร้าง struct ที่ใช้โปรโตคอล AppIntent อธิบายพารามิเตอร์ผ่าน property wrappers และใช้เมธอด perform() ระบบลงทะเบียน intent ใน Shortcuts, Siri และ Spotlight โดยอัตโนมัติ สำหรับการรองรับ iOS เวอร์ชันเก่า (10–15) จะใช้เฟรมเวิร์ก Intents กับ INIntent และ IntentHandler
import Intents
class IntentHandler: INExtension {
override func handler(for intent: INIntent) -> AnyObject? {
if intent is OrderCoffeeIntent {
return OrderCoffeeIntentHandler()
}
return .none
}
}
การทดสอบ App Intents — การดีบัก intents ทำผ่าน Xcode: เลือกสคีมาแอป ส่ง -intents ใน Arguments และซิมูเลเตอร์จะแสดงรายการ intents ที่ลงทะเบียนสำหรับการทดสอบ หากต้องการทดสอบ Shortcut ในสภาพแวดล้อมใกล้เคียงจริง ให้สร้างที่เก็บถาวรของแอปและติดตั้งบนอุปกรณ์ผ่าน TestFlight Shortcuts จากแอปจะปรากฏในแกลเลอรีหลังจากเปิดใช้ครั้งแรก
คุณสมบัติขั้นสูง App Intents รองรับพารามิเตอร์พร้อมการเติมข้อความอัตโนมัติ (ตัวเลือกไดนามิก) การยืนยันก่อนดำเนินการ intents สำหรับ Siri (ทางลัดด้วยเสียง) และการสร้างวิดเจ็ตพร้อมปุ่มเปิดใช้ Indexed intents (iOS 17+) คือ intents ที่ Siri แนะนำให้ผู้ใช้โดยอัตโนมัติตามบริบท: เวลา ตำแหน่ง และประวัติการกระทำ
คำถามที่พบบ่อย
Shortcut คือสถานการณ์ที่เชื่อมโยงการทำงานของแอปต่างๆ ไม่ใช่แอปพลิเคชันอิสระ ผู้ใช้ไม่ได้เขียนโค้ดแต่ประกอบสถานการณ์จากบล็อก Actions ที่พร้อมใช้งาน Shortcut ถูกกระตุ้นและดำเนินการโดยไม่ต้องเปิดแอป Shortcuts ในขณะที่แอปทั่วไปต้องเปิดใช้ผ่านไอคอนบนหน้าจอ
Shortcuts รองรับตัวกระตุ้น: เวลาที่กำหนด รัศมีตำแหน่งเมื่อเข้าหรือออกจากพื้นที่ แท็ก NFC เมื่อแตะ iPhone การเปิดแอป การแตะวิดเจ็ต คำสั่งเสียง Siri การเชื่อมต่อเครื่องชาร์จ โหมดนอนและโหมดโฟกัส รวมถึงการแจ้งเตือนเฉพาะจากแอป การกำหนดค่าทำได้ในแท็บ Automation
ได้ Shortcut ถูกส่งออกเป็นไฟล์ .shortcut และสามารถส่งผ่าน AirDrop, iMessage หรือเผยแพร่ในแกลเลอรี Shortcuts ผ่าน iCloud ผู้รับนำเข้าสถานการณ์และสามารถใช้งานได้ เมื่อดาวน์โหลดจากอินเทอร์เน็ต iOS ขอการยืนยันและเตือนเกี่ยวกับการเรียกใช้สถานการณ์ที่ไม่น่าเชื่อถือเนื่องจากความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้น
แอปของบุคคลที่สามเพิ่ม Actions ผ่านเฟรมเวิร์ก App Intents บน iOS 16+ หรือเฟรมเวิร์ก Intents บนเวอร์ชันเก่า นักพัฒนาลงทะเบียนการกระทำใน Intents.intentdefinition และมันจะปรากฏในแกลเลอรี Actions ของแอป Shortcuts ผู้ใช้รวม Actions จากแอปต่างๆ — ตัวอย่างเช่น ส่งลิงก์จาก Safari ไปยังบันทึก Bear
ไม่ Shortcuts ถูกสร้างขึ้นด้วยภาพโดยไม่ต้องใช้โค้ด ผู้ใช้ลากและวางบล็อก Actions จากรายการ กำหนดค่าพารามิเตอร์ และเชื่อมต่อตามลำดับ สำหรับสถานการณ์ขั้นสูง มีบล็อกเช่น Run Script Over SSH, Get Contents of URL และ Control Flow If, Repeat, For Each แต่ไม่จำเป็นต้องมีประสบการณ์การเขียนโปรแกรม
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ