Navigator: phương thức getInstalledRelatedApps()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Phương thức getInstalledRelatedApps() trả về một lời hứa có thể giải quyết bằng một loạt đối tượng đại diện cho mọi ứng dụng dành riêng cho nền tảng có liên quan hoặc Progressive Web Apps mà người dùng đã cài đặt. Điều này có thể được sử dụng để cá nhân hóa nội dung, chẳng hạn như xóa biểu ngữ "cài đặt ứng dụng của chúng tôi" khỏi ứng dụng web nếu ứng dụng dành riêng cho nền tảng và/hoặc PWA đã được cài đặt.
[!LƯU Ý] Phương thức này phải được gọi trong secure context cấp cao nhất, nghĩa là không được nhúng trong
<iframe>.
Sự miêu tả
getInstalledRelatedApps() có thể được sử dụng để kiểm tra việc cài đặt các ứng dụng Universal Windows Platform (UWP), ứng dụng Android và PWA có liên quan đến ứng dụng web gọi phương thức này.
Để liên kết ứng dụng web đang gọi với một ứng dụng dành riêng cho nền tảng hoặc PWA, phải thực hiện hai điều:
- Ứng dụng web gọi phải được chỉ định trong thành viên
related_applicationscủa manifest file của ứng dụng đó. - Ứng dụng dành riêng cho nền tảng hoặc PWA phải có mối quan hệ với ứng dụng gọi được xác định.
Việc xác định mối quan hệ được thực hiện theo cách khác tùy thuộc vào loại ứng dụng:
- Ứng dụng Android thực hiện việc này thông qua Digital Asset Links system.
- Ứng dụng Windows UWP thực hiện việc này thông qua URI Handlers.
- PWA thực hiện việc này thông qua:
- Một mục nhập tự xác định bên trong thành viên bảng kê khai
related_applicationscủa chính nó, chỉ định các thuộc tínhplatformvàid, trong trường hợp PWA kiểm tra trong cùng phạm vi nếu nó được cài đặt trên nền tảng cơ bản. - Tệp
assetlinks.jsontrong thư mục/.well-known/trong trường hợp ứng dụng nằm ngoài phạm vi PWA đang kiểm tra xem nó có được cài đặt trên Android hay không.
- Một mục nhập tự xác định bên trong thành viên bảng kê khai
Xem Is your app installed? getInstalledRelatedApps() will tell you! để biết thêm chi tiết về cách xử lý từng trường hợp này.
[!LƯU Ý] Hầu hết các trình duyệt hỗ trợ đều cung cấp giao diện người dùng cài đặt riêng khi phát hiện thấy PWA có thể cài đặt. PWA này sẽ không xuất hiện nếu đã được cài đặt — xem Making PWAs installable > Installation from the web. Điều này có thể được ngăn chặn bằng cách sử dụng sự kiện
beforeinstallprompt. Sự kiện này cũng có thể được kết hợp vớigetInstalledRelatedApps()để ngăn chặn dựa trên ứng dụng dành riêng cho nền tảng hiện có. Xem Trigger installation from your PWA để biết thêm thông tin hữu ích.
Cú pháp
getInstalledRelatedApps()
Thông số
Không có.
Giá trị trả về
Promise đáp ứng một loạt đối tượng đại diện cho mọi ứng dụng liên quan đã cài đặt. Mỗi đối tượng có thể chứa các thuộc tính sau:
idOptional-
Một chuỗi đại diện cho ID được sử dụng để đại diện cho ứng dụng trên nền tảng được chỉ định. Hình thức chính xác của chuỗi sẽ khác nhau tùy theo nền tảng.
platform-
Một chuỗi đại diện cho platform (hệ sinh thái hoặc hệ điều hành) mà ứng dụng liên quan được liên kết với. Đây có thể là:
"chrome_web_store": Ứng dụng Google Chrome Web Store."play": Ứng dụng Google Play Store."chromeos_play": Ứng dụng ChromeOS Play."webapp": Một Progressive Web App."windows": Ứng dụng Windows Store."f-droid": Ứng dụng F-Droid."amazon": Ứng dụng Amazon App Store.
urlOptional-
Một chuỗi đại diện cho URL được liên kết với ứng dụng. Đây thường là nơi bạn có thể đọc thông tin về nó và cài đặt nó.
versionOptional-
Một chuỗi đại diện cho phiên bản của ứng dụng liên quan.
Thông tin ứng dụng liên quan phải được chỉ định trước đó trong thành viên related_applications của manifest file của ứng dụng web đang gọi.
Ngoại lệ
InvalidStateErrorDOMException-
Phương thức này không được gọi trong ngữ cảnh duyệt cấp cao nhất.
Ví dụ
const relatedApps = await navigator.getInstalledRelatedApps();
// Dump all the returned related apps into a table in the console
console.table(relatedApps);
// Search for a specific installed platform-specific app
const psApp = relatedApps.find((app) => app.id === "com.example.myapp");
if (psApp && doesVersionSendPushMessages(psApp.version)) {
// There's an installed platform-specific app that handles sending push messages
// No need to handle this via the web app
return;
}
[!LƯU Ý] Trong ví dụ này,
doesVersionSendPushMessages()là hàm lý thuyết do nhà phát triển xác định; nó không được cung cấp bởi trình duyệt.
Thông số kỹ thuật
| Specification |
|---|
| Get Installed Related Apps API> # dom-navigator-getinstalledrelatedapps> |