Khởi động PWA trong ứng dụng Android
Ứng dụng web tiến bộ (PWA) là những ứng dụng web sử dụng các tính năng tương tự như ứng dụng để tạo ra trải nghiệm chất lượng cao, nhanh chóng, đáng tin cậy và hấp dẫn.
Web có phạm vi tiếp cận rộng lớn và mang đến những cách thức hiệu quả để người dùng khám phá trải nghiệm mới. Nhưng người dùng cũng quen với việc tìm kiếm các ứng dụng trong cửa hàng hệ điều hành của họ. Trong nhiều trường hợp, những người dùng đó đã quen thuộc với thương hiệu hoặc dịch vụ mà họ đang tìm kiếm và có mức độ chủ ý cao, dẫn đến các chỉ số tương tác cao hơn mức trung bình.
Cửa hàng Play là một cửa hàng dành cho các ứng dụng Android và nhà phát triển thường muốn mở Ứng dụng web tiến bộ từ các ứng dụng Android của họ.
Hoạt động đáng tin cậy trên web là một tiêu chuẩn mở cho phép các trình duyệt cung cấp một vùng chứa hoàn toàn tương thích với nền tảng web, giúp hiển thị PWA bên trong một ứng dụng Android. Tính năng này có trong Chrome và đang được phát triển trong Firefox Nightly.
Các giải pháp hiện có còn hạn chế
Bạn luôn có thể đưa trải nghiệm trên web vào một ứng dụng Android bằng cách sử dụng các công nghệ như Android WebView hoặc các khung như Cordova.
Hạn chế của Android WebView là không được dùng để thay thế trình duyệt. Android WebView là một công cụ dành cho nhà phát triển để sử dụng giao diện người dùng web trong một ứng dụng Android và không cung cấp quyền truy cập hoàn chỉnh vào các tính năng của nền tảng web hiện đại, chẳng hạn như công cụ chọn người liên hệ hoặc hệ thống tệp, trong số những tính năng khác.
Cordova được thiết kế để khắc phục những thiếu sót của WebView, nhưng các API sau đó chỉ giới hạn trong môi trường Cordova. Điều đó có nghĩa là bạn cần duy trì một cơ sở mã bổ sung để sử dụng API Cordova cho ứng dụng Android, tách biệt với PWA trên web mở.
Ngoài ra, khả năng khám phá tính năng thường không phải lúc nào cũng hoạt động như mong đợi và các vấn đề về khả năng tương thích giữa các phiên bản Android và OEM cũng có thể là một vấn đề. Khi sử dụng một trong những giải pháp đó, nhà phát triển cần có thêm các quy trình đảm bảo chất lượng và phải chịu thêm chi phí phát triển để phát hiện và tạo giải pháp thay thế.
Hoạt động đáng tin cậy trên web là một vùng chứa mới cho các ứng dụng Web trên Android
Giờ đây, nhà phát triển có thể sử dụng Hoạt động đáng tin cậy trên web làm vùng chứa để đưa PWA vào làm hoạt động khởi chạy cho một ứng dụng Android. Công nghệ này tận dụng trình duyệt để hiển thị PWA ở chế độ toàn màn hình, đảm bảo Hoạt động đáng tin cậy trên web có khả năng tương thích tương tự với các tính năng và API của Nền tảng web mà trình duyệt cơ bản có. Ngoài ra, còn có các tiện ích nguồn mở giúp việc triển khai một ứng dụng Android bằng Hoạt động đáng tin cậy trên web trở nên dễ dàng hơn.
Một lợi thế khác mà các giải pháp khác không có là vùng chứa chia sẻ bộ nhớ với trình duyệt. Trạng thái đăng nhập và lựa chọn ưu tiên của người dùng được chia sẻ liền mạch trên các trải nghiệm.
Khả năng tương thích của trình duyệt
Tính năng này đã có trong Chrome từ phiên bản 75, còn Firefox thì triển khai tính năng này trong phiên bản hằng ngày của họ.
Tiêu chí về chất lượng
Nhà phát triển web nên sử dụng Hoạt động đáng tin cậy trên web khi muốn đưa nội dung trên web vào một ứng dụng Android.
Nội dung trên web trong một Hoạt động đáng tin cậy trên web phải đáp ứng các tiêu chí về khả năng cài đặt PWA.
Ngoài ra, để phù hợp với hành vi mà người dùng mong đợi ở các ứng dụng Android, Chrome 86 đã giới thiệu một thay đổi, theo đó, việc không xử lý các trường hợp sau đây sẽ được coi là sự cố:
- Không xác minh được Digital Asset Links khi khởi chạy ứng dụng.
- Không trả về HTTP 200 cho yêu cầu về tài nguyên mạng khi không có mạng.
- Yêu cầu điều hướng trả về lỗi HTTP 404 hoặc 5xx".
Khi một trong những trường hợp đó xảy ra trong Hoạt động đáng tin cậy trên web, ứng dụng Android sẽ gặp sự cố mà người dùng có thể thấy. Hãy xem hướng dẫn về cách xử lý những trường hợp đó trong trình chạy dịch vụ của bạn.
Ứng dụng cũng phải đáp ứng các tiêu chí bổ sung dành riêng cho Android, chẳng hạn như tuân thủ chính sách.
Công cụ
Những nhà phát triển web muốn tận dụng Hoạt động đáng tin cậy trên web không cần phải tìm hiểu các công nghệ hoặc API mới để chuyển đổi PWA của họ thành một ứng dụng Android. Bubblewrap và PWABuilder cùng nhau cung cấp công cụ cho nhà phát triển dưới dạng thư viện, Giao diện dòng lệnh (CLI) và Giao diện người dùng đồ hoạ (GUI).
Bubblewrap
Dự án Bubblewrap tạo các ứng dụng Android dưới dạng một thư viện NodeJS và Giao diện dòng lệnh (CLI).
Bạn có thể khởi động một dự án mới bằng cách chạy công cụ và truyền URL của WebManifest:
npx @bubblewrap/cli init --manifest=https://pwa-directory.appspot.com/manifest.json
Công cụ này cũng có thể tạo dự án và việc chạy lệnh bên dưới sẽ xuất ra một ứng dụng Android sẵn sàng được tải lên Cửa hàng Play:
npx @bubblewrap/cli build
Sau khi chạy lệnh này, một tệp có tên là app-release-signed.apk sẽ có trong thư mục gốc của dự án. Đây là tệp sẽ được tải lên Cửa hàng Play.
PWABuilder
PWABuilder giúp nhà phát triển chuyển đổi các trang web hiện có thành Ứng dụng web tiến bộ. Công cụ này cũng tích hợp với Bubblewrap để cung cấp giao diện người dùng đồ hoạ nhằm bao bọc các PWA đó thành một ứng dụng Android. Nhóm PWABuilder đã biên soạn một bài đăng tuyệt vời trên blog về cách tạo ứng dụng Android bằng công cụ này.
Xác minh quyền sở hữu PWA trong ứng dụng Android
Một nhà phát triển tạo ra một Ứng dụng web tiến bộ tuyệt vời sẽ không muốn một nhà phát triển khác tạo ứng dụng Android bằng ứng dụng đó mà không có sự cho phép của họ. Để đảm bảo điều này không xảy ra, ứng dụng Android phải được ghép nối với Ứng dụng web tiến bộ bằng một công cụ có tên là Digital Asset Links.
Bubblewrap và PWABuilder sẽ xử lý cấu hình cần thiết trên ứng dụng Android, nhưng vẫn còn một bước cuối cùng là thêm tệp assetlinks.json vào PWA.
Để tạo tệp này, nhà phát triển cần chữ ký SHA-256 của khoá dùng để ký APK mà người dùng đang tải xuống.
Bạn có thể tạo khoá theo nhiều cách và cách dễ nhất để tìm ra khoá đã ký APK đang được phân phát cho người dùng cuối là tải khoá đó xuống từ chính Cửa hàng Play.
Để tránh cho người dùng thấy một ứng dụng bị lỗi, hãy triển khai ứng dụng đó vào một kênh thử nghiệm khép kín, cài đặt ứng dụng vào một thiết bị thử nghiệm rồi dùng Công cụ liên kết tài sản của Peter để tạo tệp assetlinks.json chính xác cho ứng dụng. Cung cấp tệp assetlinks.json đã tạo tại /.well-known/assetlinks.json, trong miền đang được xác thực.
Nội dung tiếp theo nên tìm hiểu
Ứng dụng web tiến bộ là một trải nghiệm chất lượng cao trên web. Hoạt động đáng tin cậy trên web là một cách mới để mở những trải nghiệm chất lượng cao đó từ một ứng dụng Android khi chúng đáp ứng các tiêu chí chất lượng tối thiểu.
Nếu bạn mới bắt đầu sử dụng Ứng dụng web tiến bộ, hãy đọc hướng dẫn của chúng tôi về cách tạo một ứng dụng web tiến bộ chất lượng cao. Đối với những nhà phát triển đã có PWA, hãy sử dụng Lighthouse để xác minh xem PWA đó có đáp ứng tiêu chí chất lượng hay không.
Sau đó, hãy dùng Bubblewrap hoặc PWABuilder để tạo ứng dụng Android, tải ứng dụng lên một kênh thử nghiệm khép kín trên Cửa hàng Play và ghép nối ứng dụng đó với PWA bằng Peter's Asset Link Tool.
Cuối cùng, hãy chuyển ứng dụng của bạn từ kênh thử nghiệm khép kín sang kênh phát hành công khai!