כשהמשתמש מוסיף את אפליקציית האינטרנט המתקדמת שלכם למסך הבית ב-Android, Chrome יוצר עבורכם קובץ APK באופן אוטומטי. לפעמים אנחנו קוראים לקובץ הזה WebAPK. התקנה באמצעות קובץ APK מאפשרת לאפליקציה להופיע במרכז האפליקציות, בהגדרות האפליקציות של Android ולרשום קבוצה של מסנני כוונות.
התקנת PWA ב-Android היא לא רק הוספה של אפליקציית ה-Progressive Web App למסך הבית של המשתמש. Chrome יוצר ומתקין באופן אוטומטי קובץ APK מיוחד של האפליקציה. לפעמים אנחנו מכנים אותו WebAPK. התקנה באמצעות קובץ APK מאפשרת לאפליקציה להופיע במרכז האפליקציות, בהגדרות האפליקציות של Android ולרשום קבוצה של מסנני Intent.
כדי ליצור את קובץ ה-WebAPK, Chrome בודק את מניפסט של אפליקציית האינטרנט ומטא-נתונים אחרים. כשמתגלה עדכון למניפסט, Chrome צריך ליצור קובץ APK חדש.
מסנני Intent ל-Android
כשאפליקציית Progressive Web App מותקנת ב-Android, היא רושמת קבוצה של מסנני כוונה לכל כתובות ה-URL שנכללות בהיקף האפליקציה. כשמשתמש לוחץ על קישור שנכלל בהיקף האפליקציה, האפליקציה נפתחת במקום בכרטיסייה בדפדפן.
נבחן את manifest.json
החלקי הבא:
"start_url": "/",
"display": "standalone",
כשאפליקציית אינטרנט שמשתמשת ב-https://example.com/
מופעלת ממרכז האפליקציות, היא נפתחת בתור אפליקציה עצמאית, ללא רכיבי דפדפן.
קובץ ה-WebAPK יכלול את מסנני הכוונה הבאים:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="example.com"
android:pathPrefix="/" />
</intent-filter>
אם המשתמש לוחץ על קישור באפליקציה מותקנת ל-https://example.com/read
, המערכת תזהה את הכוונה ותפתח את הקישור באפליקציית האינטרנט המתקדמת.
שימוש ב-scope
כדי להגביל מסנני כוונה
אם אתם לא רוצים שהאפליקציה לניהול אתר דינמי לטלפונים ניידים לטפל בכל כתובות ה-URL באתר, תוכלו להוסיף את המאפיין scope
למניפסט של אפליקציית האינטרנט. נכס scope
מורה ל-Android לפתוח את אפליקציית האינטרנט רק אם כתובת ה-URL תואמת ל-origin
+ scope
. היא מאפשרת לכם לקבוע אילו כתובות URL יטופלו על ידי האפליקציה ואילו ייפתח בדפדפן.
האפשרות הזו שימושית כשהאפליקציה שלכם ותוכן אחר שאינו אפליקציה נמצאים באותו דומיין.
נבחן את manifest.json
החלקי הבא:
"scope": "/app/",
"start_url": "/app/",
"display": "standalone",
כשמפעילים את האפליקציה ממרכז האפליקציות, היא נפתחת בתור אפליקציה עצמאית, ללא רכיבי דפדפן.https://example.com/app/
כמו קודם, קובץ ה-WebAPK שנוצר יכלול מסנן כוונה, אבל עם מאפיין android:pathPrefix
שונה ב-AndroidManifest.xml
של קובץ ה-APK:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="example.com"
android:pathPrefix="/app/" />
</intent-filter>
הנה כמה דוגמאות:
https://example.com/app/
– בתוך /app/
https://example.com/app/read/book
– בתוך /app/
https://example.com/help/
– לא ב-/app/
https://example.com/about/
– לא ב-/app/
במאמר scope
מוסבר בהרחבה על scope
, מה קורה אם לא מגדירים אותו ואיך משתמשים בו כדי להגדיר את היקף האפליקציה.
ניהול הרשאות
ההרשאות פועלות כמו באפליקציות אינטרנט אחרות, ואי אפשר לבקש אותן בזמן ההתקנה. במקום זאת, צריך לבקש אותם בזמן הריצה, רצוי רק כשבאמת צריכים אותם. לדוגמה, אל תבקשו הרשאה להשתמש במצלמה בטעינה הראשונה, אלא המתינו עד שהמשתמש ינסה לצלם תמונה.
ניהול האחסון ומצב האפליקציה
אפליקציית האינטרנט המתקדמת מותקנת באמצעות קובץ APK, אבל Chrome משתמש בפרופיל הנוכחי כדי לאחסן את הנתונים, והם לא יופרדו. כך אפשר ליהנות מחוויה משותפת בין הדפדפן לאפליקציה המותקנת. קובצי ה-cookie משותפים ופעילים, כל אחסון בצד הלקוח נגיש ו-service worker מותקן ומוכן לשימוש.
עדכון ה-WebAPK
המידע על האופן שבו מתבצע עדכון של WebAPK הועבר למאמר איך Chrome מטפל בעדכונים למניפסט של אפליקציית האינטרנט.
שאלות נפוצות
- באילו סמלים משתמשים כדי ליצור את מסך הפתיחה? :
- מומלץ לספק לפחות שני סמלים: 192px ו-512px למסך הפתיחה. קיבלנו ממך דיווח על כך שהסמלים במסך הפתיחה היו קטנים מדי. ב-WebAPKs שנוצרו ב-Chrome 71 ואילך יוצג סמל גדול יותר במסך הפתיחה. לא נדרשת כל פעולה, כל עוד הסמלים המומלצים מוצגים.
- מה קורה אם המשתמש כבר התקין את האפליקציה המקורית של האתר?
- כמו האפשרות 'הוספה למסך הבית' היום, המשתמשים יוכלו להוסיף אתר ללא תלות באפליקציות מקוריות. אם אתם צופים שהמשתמשים עשויים להתקין את שתי הגרסאות, מומלץ להבדיל בין הסמל או השם של האתר לבין האפליקציה המקורית.
- האם האחסון של האתר שהותקן יימחק אם המשתמש ינקה את המטמון של Chrome?
- כן.
- האם האפליקציה תותקן מחדש כשאקבל מכשיר חדש?
- לא בשלב הזה, אבל אנחנו חושבים שזה תחום חשוב ואנחנו בודקים דרכים להפעיל אותו.
- איך מטפלים בהרשאות? האם תוצג ההודעה של Chrome או של Android?
- ההרשאות עדיין ינוהלו דרך Chrome. המשתמשים יראו את ההנחיות של Chrome להענקת הרשאות, ויוכלו לערוך אותן בהגדרות Chrome.
- באילו גרסאות של Android התכונה הזו תפעל?
- אפשר להתקין אפליקציות אינטרנט מתקדמות בכל הגרסאות של Android שפועל בהן Chrome ל-Android, במיוחד בגרסה Jelly Bean ואילך.
- האם הקוד הזה משתמש ב-WebView?
- לא, האתר נפתח בגרסה של Chrome שממנה המשתמש הוסיף את האתר.
- האם אפשר להעלות את קובצי ה-APK שנוצרו לחנות Play?
- לא. אם רוצים להעלות קובץ APK משלכם, אפשר להיעזר בפעילויות מהימנות באינטרנט.
- האם הם מופיעים בחנות Play?
- לא. אם אתם רוצים להעלות קובץ APK משלכם כדי להוסיף אותו לדף האפליקציה בחנות Play, כדאי לעיין במאמר פעילויות מהימנות באינטרנט.
- אני מפתח של דפדפן אחר ל-Android. האם אפשר להשתמש בתהליך ההתקנה החלק הזה? :
- אנחנו עובדים על זה. אנחנו מחויבים להפוך את התכונה הזו לזמינה לכל הדפדפנים ב-Android, ובקרוב נוסיף פרטים נוספים.