כשהמשתמש מתקין את ה-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.
- ב-Chrome מגרסה 96 ואילך, פותחים את החלונית Manifest בחלונית Application ב-DevTools.
- הערה מתחת למאפיין Computed App Id תופיע אם הערך של
id
לא צוין בקובץ המניפסט של אפליקציית האינטרנט. - מעתיקים את הערך של
id
שמוצג בהערה (ראו צילום המסך בהמשך). - מוסיפים מאפיין
id
למניפסט של אפליקציית האינטרנט באמצעות הערךid
שמוצג בהערה.
{
...
id: "/?homescreen=1",
start_url: "/?homescreen=1",
...
}
מה קורה אם לא מגדירים id
?
אין מה לדאוג, שום דבר לא יתקלקל. החל מגרסה 96 של Chrome, הדפדפן ייצור id
אם הוא לא קיים במניפסט על סמך start_url
במניפסט של אפליקציית האינטרנט.
הוספת id
למניפסט של אפליקציית האינטרנט מאפשרת לשנות את start_url
ואת נתיב המניפסט (אם ורק אם המקור הספציפי שלהם נשאר ללא שינוי), כי הדפדפן יזהה את ה-PWA על סמך id
שצוין, ולא על סמך start_url
או נתיב המניפסט.
איך בודקים את זה?
כדי לבדוק את ההתנהגות, מבצעים את הפעולות הבאות:
- מתקינים את ה-PWA.
- פותחים את
about://web-app-internals/
ובודקים את הנכסmanifest_id
ואת הנכסstart_url
של אפליקציית ה-PWA שהותקנה. - מוסיפים נכס
id
למניפסט של אפליקציית האינטרנט לפי השלבים שמפורטים בקטע איך קובעים ומגדירים אתid
למעלה. - מפעילים מחדש את הדפדפן באמצעות
chrome://restart
, פותחים את אפליקציית ה-PWA מ-about://apps
וסוגרים אותה כדי לאלץ את הקובץ של המניפסט להתעדכן. - פותחים את
about://web-app-internals/
ובודקים את הנכסmanifest_id
של אפליקציית ה-PWA שהותקנה כדי לוודא שהיא לא השתנתה. - משנים את
start_url
במניפסט של אפליקציית האינטרנט. - מפעילים מחדש את הדפדפן באמצעות
chrome://restart
, פותחים את אפליקציית ה-PWA מ-about://apps
וסוגרים אותה כדי לאלץ את הקובץ של המניפסט להתעדכן. - פותחים את
about://web-app-internals/
ובודקים את הנכסstart_url
של ה-PWA ההתקין כדי לוודא שהוא עודכן כצפוי.