Native Notification Attribution (Phân bổ thông báo gốc) cho ứng dụng web trên macOS

Marijn Kruisselbrink
Marijn Kruisselbrink
Dan Murphy
Dan Murphy

Ngày xuất bản: 16 tháng 7 năm 2026

Kể từ Chrome 152, các ứng dụng web tiến bộ (PWA) được cài đặt trên macOS sẽ có thông báo được gán gốc cho chính PWA, thay vì cho Google Chrome.

Đây là một điểm cải tiến đáng kể về trải nghiệm người dùng, giúp các ứng dụng web có cảm giác tích hợp hơn vào macOS. Tuy nhiên, bản phát hành này cũng có những thay đổi quan trọng đối với cách xử lý quyền thông báo và cách hoạt động của một số API thông báo nhất định.

Điều gì sẽ thay đổi?

Trước đây, tất cả thông báo do PWA gửi đều được quy cho Chrome ở cấp hệ điều hành. Trong Trung tâm thông báo của macOS, các thông báo này xuất hiện trong phần "Google Chrome" và sử dụng biểu tượng Chrome. Để tắt thông báo, người dùng cần sử dụng các chế độ kiểm soát trong Chrome, chứ không phải phần Cài đặt hệ thống của macOS.

Với phân bổ thông báo, khi một trang web được cài đặt dưới dạng PWA, macOS sẽ coi trang web đó là một ứng dụng riêng biệt để nhận thông báo. Điều này áp dụng cho cả PWA mới cài đặt và PWA mà người dùng đã cài đặt trước đó.

Lợi ích:

  • Nhận diện thương hiệu: Thông báo cho thấy tên và biểu tượng riêng của PWA trong Trung tâm thông báo và biểu ngữ của macOS.
  • Các chế độ kiểm soát quen thuộc của người dùng: Các chế độ kiểm soát thông báo cho những ứng dụng này hiện xuất hiện đúng vị trí mà người dùng mong đợi: trong phần Cài đặt hệ thống của macOS (không phải Chrome).
  • Kiểm soát chi tiết: Người dùng có thể quản lý chế độ cài đặt thông báo của từng ứng dụng PWA (ví dụ: kiểu cảnh báo, hành vi trên màn hình khoá).
  • Chế độ tập trung: Bạn có thể cho phép hoặc tắt tiếng từng PWA trong Hồ sơ tập trung (Không làm phiền) của macOS.
Được ghi nhận là "Google Chrome" kèm theo biểu tượng Chrome.
Trước đây: Được phân bổ cho "Google Chrome" bằng biểu tượng Chrome.
Được phân bổ cho "Tên PWA" bằng biểu tượng tuỳ chỉnh của PWA.
Sau: Được phân bổ cho "Tên PWA" bằng biểu tượng tuỳ chỉnh của PWA.

Quy trình cấp quyền mới

Vì macOS hiện coi PWA là một ứng dụng riêng biệt, nên PWA phải có được quyền gửi thông báo ở cấp hệ điều hành thì mới có thể hiển thị thông báo. Thay đổi này sẽ thay đổi quy trình cấp quyền cho cả người dùng mới và người dùng hiện tại.

Người dùng mới (yêu cầu cấp quyền lần đầu)

Nếu người dùng cài đặt một PWA và trang web yêu cầu quyền gửi thông báo sau khi cài đặt:

  1. Chrome sẽ bỏ qua lời nhắc cấp quyền ở cấp trình duyệt (trình đơn thả xuống trên thanh địa chỉ).
  2. Chrome sẽ ngay lập tức kích hoạt lời nhắc về quyền hệ thống macOS cho PWA.
Hộp thoại cấp quyền của hệ thống macOS: Tên PWA muốn gửi thông báo cho bạn. Thông báo có thể bao gồm cảnh báo, âm thanh và biểu tượng, cùng với các nút Không cho phép và Cho phép.
Hộp thoại cấp quyền hệ thống macOS cho PWA đã cài đặt.
Sơ đồ quy trình cho thấy quy trình cấp quyền cho PWA. Bắt đầu bằng "PWA Requests Permission" (PWA yêu cầu cấp quyền) dẫn đến quyết định "Đã cài đặt?". Nếu bạn chọn "Có", lời nhắc của Chrome sẽ bị bỏ qua và lời nhắc của hệ thống macOS sẽ xuất hiện. Nếu là "Không", thì lời nhắc của trình duyệt Chrome sẽ xuất hiện, người dùng cài đặt PWA, sau đó lời nhắc của hệ thống macOS sẽ xuất hiện.
Sơ đồ quy trình cấp quyền gửi thông báo của PWA.

Người dùng hiện tại (đường dẫn di chuyển)

Nếu người dùng đã cấp quyền gửi thông báo cho trang web của bạn trong Chrome, sau đó cài đặt (hoặc đã cài đặt) PWA, thì họ vẫn phải cấp quyền ở cấp hệ điều hành cho PWA.

Để quá trình chuyển đổi này diễn ra suôn sẻ nhất có thể, hãy:

  1. Lần đầu tiên PWA cố gắng gửi thông báo, macOS sẽ hiển thị lời nhắc cấp quyền của hệ thống.
  2. Nếu người dùng phê duyệt, thông báo sẽ tiếp tục hoạt động liền mạch.
  3. Nếu người dùng bỏ qua hoặc đóng lời nhắc này, PWA sẽ cho thấy một chỉ báo trong ứng dụng (thường nằm trong thanh tiêu đề hoặc trình đơn của ứng dụng) hướng dẫn họ truy cập vào phần Cài đặt hệ thống của macOS để bật quyền theo cách thủ công.
Nhắc người dùng về PWA đã cài đặt rằng thông báo đang tắt trong phần System Settings (Cài đặt hệ thống) trên máy Mac bằng một nút để chuyển đến phần này.
Lời nhắc trong ứng dụng trong PWA hướng dẫn người dùng truy cập vào phần Cài đặt hệ thống của macOS.
Phần cài đặt ứng dụng có lựa chọn bật hoặc tắt thông báo và một con trỏ tại phần Cài đặt hệ thống để bật thông báo.
Chế độ cài đặt ứng dụng trong Chrome có chỉ báo để mở phần Cài đặt hệ thống của macOS.
Nhắc ứng dụng trong trình duyệt cho người dùng biết rằng thông báo đang tắt trong phần System Settings (Cài đặt hệ thống) trên máy Mac bằng một nút để chuyển đến phần này.
Lời nhắc trong trình duyệt hướng dẫn người dùng truy cập phần Cài đặt hệ thống trên macOS.

Tác động đến nhà phát triển: Ngừng cung cấp requireInteraction trên macOS

Trên macOS, việc một thông báo vẫn xuất hiện trên màn hình cho đến khi người dùng loại bỏ ("Liên tục") hay tự động biến mất ("Tạm thời") là chế độ cài đặt do người dùng kiểm soát cho từng ứng dụng trong phần Cài đặt hệ thống của macOS.

Do thiết kế của hệ điều hành này, Chrome sẽ không còn tuân theo lựa chọn requireInteraction trong Notification API trên macOS khi tính năng phân bổ đang hoạt động.

Tác động của thay đổi này đối với mã của bạn:

Nếu ứng dụng của bạn dựa vào requireInteraction: true để giữ các thông báo quan trọng trên màn hình, thì điều này sẽ không còn được đảm bảo trên macOS. Thay vào đó, bạn nên:

  • Thiết kế ứng dụng của bạn giả định rằng thông báo có thể chỉ xuất hiện trong thời gian ngắn (Tạm thời).
  • Khuyến khích những người dùng cần thông báo liên tục định cấu hình kiểu cảnh báo có thông báo của PWA thành "Liên tục" trong System Settings > Notifications > [Your PWA].
Phần Cài đặt hệ thống của macOS, làm nổi bật chế độ cài đặt Kiểu cảnh báo cho thấy các lựa chọn Tạm thời và Liên tục.
Chế độ cài đặt hệ thống macOS cho PWA cho thấy chế độ cài đặt kiểu Cảnh báo (Tạm thời so với Liên tục).

Tác động đối với nhà phát triển: App Badging API yêu cầu quyền gửi thông báo

App Badging API cho phép các ứng dụng web đặt huy hiệu trên biểu tượng ứng dụng (ví dụ: cho biết số lượng tin nhắn chưa đọc). Trên macOS, huy hiệu biểu tượng ứng dụng về mặt kỹ thuật được liên kết với chế độ cài đặt thông báo của ứng dụng. Vì giờ đây, PWA có danh tính thông báo riêng:

  • Cần có quyền: PWA phải có quyền gửi thông báo ở cấp hệ điều hành thì huy hiệu mới xuất hiện trên biểu tượng Dock. Điều này phù hợp với các tiêu chuẩn nền tảng macOS và cách Safari xử lý Badging API cho các ứng dụng web.
  • Lỗi âm thầm: Nếu người dùng tắt "Biểu tượng ứng dụng huy hiệu" trong System Settings > Notifications > [Your PWA] hoặc từ chối hoàn toàn quyền thông báo, các lệnh gọi đến navigator.setAppBadge() vẫn sẽ thành công trong JavaScript (mà không gửi lỗi), nhưng huy hiệu sẽ không xuất hiện trên Dock. Nếu ứng dụng của bạn dựa vào tính năng gắn huy hiệu, hãy nhớ yêu cầu quyền gửi thông báo để đảm bảo huy hiệu có thể xuất hiện.

Ảnh hưởng đến hoạt động quản trị doanh nghiệp

Đối với những quản trị viên doanh nghiệp quản lý thiết bị macOS và muốn cấp trước quyền nhận thông báo:

  1. Chính sách của Chrome: Bạn vẫn phải định cấu hình chính sách của Chrome (NotificationsAllowedForUrls) để cấp quyền cho nguồn gốc của PWA.
  2. Chính sách về macOS: Ngoài ra, giờ đây, bạn phải triển khai Cấu hình macOS (MDM) để cấp trước quyền nhận thông báo cho mã nhận dạng gói của PWA (App Shim).

Nếu không có cả hai chính sách này, người dùng vẫn sẽ nhận được lời nhắc ở cấp hệ điều hành.

Các phương pháp hay nhất dành cho nhà phát triển

  1. Kiểm tra trạng thái quyền: Luôn kiểm tra Notification.permission trước khi gửi thông báo.
  2. Lời nhắc theo bối cảnh: Nếu bạn phát hiện thấy quyền được cấp ở cấp web nhưng thông báo không xuất hiện (điều này có thể xảy ra nếu quyền ở cấp hệ điều hành bị thu hồi), hãy hướng dẫn người dùng truy cập vào phần Cài đặt hệ thống của macOS.
  3. Chuẩn bị cho thông báo tạm thời: Không dựa vào requireInteraction cho các luồng thao tác quan trọng của người dùng trên macOS.