Mục lục bài viết
Trước iOS 18, khu vực nút bấm trong Trung tâm điều khiển gần như bị đóng khung với các tính năng của Apple, ứng dụng bên thứ ba chỉ chen chân được qua widget. Controls API thay đổi hoàn toàn cách này, cho phép nhà phát triển đăng ký hẳn một nút bấm hoặc công tắc gạt riêng, đặt ở Trung tâm điều khiển, Khoá màn hình hoặc gán cho nút bên hông máy.
Ba loại Control mà một ứng dụng có thể đăng ký
Controls API hỗ trợ ba kiểu: nút bấm một lần (chạy một hành động rồi thôi), công tắc gạt bật/tắt lưu trạng thái, và thanh mở nhanh trực tiếp vào một màn hình cụ thể trong app. Nhà phát triển khai báo qua ControlWidget trong code, quyết định loại nào phù hợp với chức năng, ví dụ ứng dụng đèn pin dùng công tắc gạt còn ứng dụng ghi chú thoại dùng nút bấm một lần để bắt đầu ghi âm ngay.
Cách thêm Control vào Trung tâm điều khiển
Vào Trung tâm điều khiển rồi chạm dấu cộng ở góc trên bên trái, danh sách hiện ra không chỉ có Control của Apple mà còn có mục riêng cho từng ứng dụng bên thứ ba đã cài đặt và có hỗ trợ Controls API. Kéo Control cần dùng vào lưới, có thể đổi kích thước thành ô vuông nhỏ hoặc ô chữ nhật dài tuỳ vào việc Control đó có hiển thị thêm nhãn văn bản hay không.
Đưa Control lên màn hình khoá và gán cho nút Action
Cùng một Control đã tạo có thể xuất hiện song song ở ba nơi: Trung tâm điều khiển, góc dưới màn hình khoá thay cho hai icon đèn pin/camera mặc định, và gán làm hành động cho nút Action trên các dòng máy có nút bấm này. Vào Cài đặt > Nút Action, cuộn đến mục Controls sẽ thấy toàn bộ Control đã đăng ký từ mọi ứng dụng, chọn một cái để bấm giữ nút Action là kích hoạt ngay không cần mở màn hình khoá.
Yêu cầu về phía nhà phát triển khiến không phải app nào cũng có
Ứng dụng phải được build lại với iOS 18 SDK và khai báo ControlWidgetConfiguration trong Widget Extension, đây là công sức bổ sung riêng chứ không tự động có khi app cũ chạy trên máy đã lên đời hệ điều hành. Vì vậy nhiều ứng dụng quen thuộc vẫn chưa xuất hiện trong danh sách thêm Control dù nhà phát triển đã hỗ trợ widget từ lâu, do widget và Control là hai API tách biệt cần code riêng.
Giới hạn tương tác so với mở thẳng ứng dụng
Một Control chỉ chạy được đúng một hành động đã định nghĩa sẵn, không có màn hình tương tác phức tạp như widget tương tác trên màn hình chính hỗ trợ nhiều nút bấm cùng lúc. Khi cần chọn giữa nhiều tuỳ chọn, ví dụ chọn cảnh máy pha cà phê trong ứng dụng nhà thông minh, ứng dụng phải tách thành nhiều Control riêng biệt thay vì gộp vào một giao diện có menu lựa chọn.
Hiểu nhầm thường gặp
“Controls API chỉ là widget đổi tên, không có gì khác iOS 17 trở về trước.” Khác biệt cốt lõi là Control chạy hành động ngay tại chỗ thông qua App Intents mà không cần mở ứng dụng, còn hầu hết widget cũ chỉ là lối tắt mở app hoặc hiển thị thông tin tĩnh, không thực thi hành động trực tiếp từ vị trí đặt widget.
Xem thêm
Bài này là một phần của nhóm bài viết Mẹo & tuỳ biến iOS: tổng hợp bài viết. Xem thêm Tuỳ biến màn hình khoá iPhone: widget, Live Activities, và Focus filter. Tham khảo thêm tại trang hỗ trợ chính thức của Apple để có thông tin cập nhật chính thức về chủ đề này.
