זיהוי ייחודי של אפליקציות PWA באמצעות נכס מזהה המניפסט של אפליקציית האינטרנט

כשמשתמש מתקין את ה-PWA, הדפדפן צריך דרך לזהות את ה-PWA באופן ייחודי. אבל עד לאחרונה, מפרט המניפסט של אפליקציית אינטרנט לא הגדיר במפורש דרך לזיהוי ייחודי של PWA, מה שהוביל להחלטה לגבי דפדפנים שונים. בדפדפנים מסוימים נעשה שימוש בשדה start_url, ובדפדפנים אחרים נעשה שימוש בנתיב לקובץ המניפסט, ולכן אי אפשר לעדכן את השדות האלה.

כדי לפתור את הבעיה, יש מאפיין id אופציונלי חדש במפרט המניפסט של אפליקציית האינטרנט, שמאפשר לכם להגדיר במפורש את המזהה שמשמש ל-PWA. הוספת המאפיין id למניפסט מסירה את התלות ב-start_url או במיקום של המניפסט, כך שניתן יהיה לעדכן אותם בעתיד.

מה עושה הנכס id?

המאפיין id מייצג את הזהות של ה-PWA לדפדפן. כשהדפדפן יזהה מניפסט שאין לו זהות שתואמת ל-PWA שכבר הותקן, הוא יתייחס אליו כאל PWA חדש, גם אם הוא הוצג מאותה כתובת URL כמו זו של PWA אחר. עם זאת, אם הוא מזהה מניפסט עם זהות שתואמת ל-PWA שכבר הותקן, הוא יתייחס אליו בתור ה-PWA המותקן.

תמיכת דפדפן

התמיכה בנכס id נחתה ב-Chrome 96.

מה צריך לעשות אם יש לי אפליקציה בלי id?

אין שום דבר שצריך לעשות, ושום דבר לא יעבוד אם לא תוסיפו id למניפסט של אפליקציית האינטרנט (כל עוד start_url ונתיב המניפסט נשארו ללא שינוי). כדי להתאים את ה-PWA בעתיד, תוכלו להוסיף מאפיין id לקובץ המניפסט של אפליקציית האינטרנט.

איך אפשר לקבוע ולהגדיר את id?

הדרך הבטוחה והמדויקת ביותר לקבוע את id ל-PWA היא לבדוק את הערך שמחושב על ידי Chrome.

  1. ב-Chrome בגרסה 96 ואילך, פותחים את החלונית מניפסט בחלונית Application ב-DevTools.
  2. מעבירים את העכבר מעל הסמל (!) לצד המאפיין מזהה אפליקציה. סמל ההסבר הקצר (!) יופיע רק כשהערך של id לא צוין בקובץ המניפסט של אפליקציית אינטרנט.
  3. שים לב לערך id המוצג בהטיפ לכלי (ראה צילום מסך למטה).
  4. מוסיפים מאפיין id למניפסט של אפליקציית האינטרנט באמצעות הערך id שמוצג בהסבר הקצר.

הסבר קצר שמציג את הערך 'מזהה'.

{
  ...
  id: "/?homescreen=1",
  start_url: "/?homescreen=1",
  ...
}

מה יקרה אם לא אגדיר id?

אל דאגה, שום דבר לא ייהרס. החל מגרסה 96 של Chrome, הדפדפן יפיק id אם אין id במניפסט על סמך ה-start_url במניפסט של אפליקציית האינטרנט.

אם מוסיפים id למניפסט של אפליקציית האינטרנט, אפשר לשנות את start_url ואת נתיב המניפסט (אם ורק אם המקור הספציפי שלהם לא השתנה!), כי הדפדפן יזהה את ה-PWA על סמך id שצוין, ולא על סמך הנתיב start_url או הנתיב של המניפסט.

איך אפשר לבדוק את זה?

כדי לבדוק את ההתנהגות, צריך לבצע את השלבים הבאים:

  1. מתקינים את ה-PWA.
  2. פותחים את about://web-app-internals/ ובודקים את הנכס unhashed_app_id ו-start_url של ה-PWA שהותקנו.
  3. מוסיפים מאפיין id למניפסט של אפליקציית האינטרנט לפי השלבים המפורטים בקטע איך מזהים ומגדירים את id למעלה.
  4. מפעילים מחדש את הדפדפן באמצעות chrome://restart, מפעילים את ה-PWA מ-about://apps, ואז סוגרים את ה-PWA כדי לאלץ את הרענון של קובץ המניפסט.
  5. פותחים את about://web-app-internals/ ובודקים את המאפיין manifest_id של ה-PWA שהותקן כדי לוודא שהוא לא השתנה.
  6. יש לשנות את start_url בקובץ המניפסט של אפליקציית האינטרנט.
  7. מפעילים מחדש את הדפדפן באמצעות chrome://restart, מפעילים את ה-PWA מ-about://apps, ואז סוגרים את ה-PWA כדי לאלץ את הרענון של קובץ המניפסט.
  8. פותחים את about://web-app-internals/ ובודקים את הנכס ב-start_url של ה-PWA שהותקן כדי לוודא שהוא עודכן כמצופה.

מקורות מידע נוספים