הגדרת פעילויות אינטרנט מהימנות יכולה להיות מעט מורכבת, במיוחד אם כל מה שאתם רוצים לעשות הוא להציג את האתר שלכם. במדריך הזה מוסבר איך ליצור פרויקט בסיסי שכולל את כל האפליקציות המהימנות באינטרנט.
בסיום המדריך הזה, תוכלו:
- השתמשתם ב-Bubblewrap כדי ליצור אפליקציה שמשתמשת בפעילות מהימנה באינטרנט ועוברת את האימות.
- הסבר על המקרים שבהם נעשה שימוש במפתחות החתימה שלך.
- לקבוע את החתימה שבה נוצרה אפליקציית Android.
- חשוב לדעת איך ליצור קובץ בסיסי של קישורים לנכסים דיגיטליים.
כדי לפעול לפי המדריך הזה, צריך:
- גרסה 10 ואילך של Node.js מותקנת במחשב הפיתוח.
- טלפון Android או אמולטור שמחוברים ומוכנים לפיתוח (מפעילים את ניפוי הבאגים ב-USB אם משתמשים בטלפון פיזי).
- דפדפן שתומך בפעילות מהימנה באינטרנט בטלפון הפיתוח. Chrome מגרסה 72 ואילך יפעל. בקרוב נוסיף תמיכה בדפדפנים נוספים.
- אתר שרוצים להציג ב'פעילות Trusted Web'.
פעילות אינטרנט מהימנה מאפשרת לאפליקציה ל-Android להפעיל כרטיסיית דפדפן במסך מלא בלי ממשק משתמש של דפדפן. היכולת הזו מוגבלת לאתרים שבבעלותכם. כדי להוכיח זאת, אתם יכולים להגדיר קישורים לנכסים דיגיטליים. נרחיב עליהם בהמשך.
כשתפעילו פעילות מהימנה באינטרנט, הדפדפן יבדוק אם הבדיקה של Digital Asset Links נקראת אימות. אם האימות ייכשל, הדפדפן יחזור להציג את האתר ככרטיסייה מותאמת אישית.
התקנה והגדרה של Bubblewrap
Bubblewrap הוא קבוצה של ספריות וכלי שורת פקודה (CLI) ל-Node.js שעוזר למפתחים ליצור, לפתח ולהריץ אפליקציות אינטרנט מתקדמות (PWA) בתוך אפליקציות ל-Android, באמצעות Trusted Web Activity.
אפשר להתקין את ה-CLI באמצעות הפקודה הבאה:
npm i -g @bubblewrap/cli
הגדרת הסביבה
כשמריצים את בועת ה-בועות בפעם הראשונה, תוצג הצעה להוריד ולהתקין באופן אוטומטי את יחסי התלות החיצוניים הנדרשים. מומלץ לאפשר לכלי לעשות זאת, כי כך מובטח שהיחסי התלות מוגדרים בצורה נכונה. כדי להשתמש בערכת פיתוח קיימת של Java (JDK) או בהתקנה של כלי שורת הפקודה של Android, יש לעיין במסמכי התיעוד של רגע השימוש ב-בועות.
איך מפעילים ומפתחים את הפרויקט
כדי לאתחל פרויקט Android שמארז אפליקציית PWA, מריצים את הפקודה init:
bubblewrap init --manifest=https://my-twa.com/manifest.json
Bubblewrap יקרא את Web Manifest, יבקש מהמפתחים לאשר את הערכים שישמשו בפרויקט ל-Android ויצור את הפרויקט באמצעות הערכים האלה. אחרי יצירת הפרויקט, מריצים APK באמצעות הפקודה:
bubblewrap build
ריצה
בשלב ה-build יופק קובץ בשם app-release-signed.apk
. אפשר להתקין את הקובץ הזה במכשיר פיתוח לצורך בדיקה או להעלות אותו לחנות Play כדי להשיק אותו.
ב-Bubblewrap יש פקודה להתקנה ולבדיקה של האפליקציה במכשיר מקומי. מחברים את מכשיר הפיתוח למחשב ומריצים את הפקודה:
bubblewrap install
לחלופין, אפשר להשתמש בכלי adb.
adb install app-release-signed.apk
האפליקציה אמורה להיות זמינה עכשיו במרכז האפליקציות של המכשיר. כשתפתחו את האפליקציה, תבחינו שהאתר שלכם יופעל ככרטיסייה מותאמת אישית ולא כפעילות אינטרנט מהימנה. הסיבה לכך היא שעדיין לא הגדרנו את האימות של קישורי הנכסים הדיגיטליים, אבל קודם...
חלופות לממשק משתמש גרפי (GUI) ל-Bubblewrap
PWA Builder הוא ממשק משתמש גרפי שמשתמש בספרייה Bubblewrap כדי ליצור פרויקטים של פעילות מהימנה באינטרנט. בפוסט בבלוג הזה מפורטות הוראות נוספות לשימוש ב-PWA Builder כדי ליצור אפליקציה ל-Android שפותחת את ה-PWA.
הערה לגבי מפתחות חתימה
ב'קישורים לנכסים דיגיטליים' נלקחים בחשבון המפתח שאיתו נחתם חבילת ה-APK. אחת הסיבות הנפוצות לכישלון באימות היא שימוש בחתימה שגויה. (חשוב לזכור: אם האימות נכשל, האתר שלכם יופעל ככרטיסייה מותאמת אישית עם ממשק המשתמש של הדפדפן בחלק העליון של הדף). כש-Bubblewrap יוצר את האפליקציה, נוצר קובץ APK עם הגדרת מפתח בשלב init
. עם זאת, כשתפרסמו את האפליקציה ב-Google Play, יכול להיות שייווצר עבורכם מפתח אחר, בהתאם לאופן שבו תבחרו לטפל במפתחות החתימה. מידע נוסף על מפתחות חתימה והקשר שלהם ל-Bubblewrap ול-Google Play
הגדרת קובץ הקישור לנכס
קישורים לנכסים דיגיטליים הם בעצם קובץ באתר שמפנה לאפליקציה וכמה מטא-נתונים באפליקציה שמפנה לאתר.
אחרי שיוצרים את הקובץ assetlinks.json
, מעלים אותו לאתר בכתובת .well-known/assetlinks.json
(ביחס לשורש) כדי שהדפדפן יוכל לאמת את האפליקציה בצורה תקינה. מידע נוסף על קישורי נכסים דיגיטליים, כולל הסבר על הקשר שלהם למפתח החתימה.
בדיקת הדפדפן
פעילות Trusted Web תנסה לפעול בהתאם לדפדפן ברירת המחדל שבחר המשתמש. אם דפדפן ברירת המחדל של המשתמש תומך בפעילויות אינטרנט מהימנות, הוא יופעל. אחרת, אם דפדפן מותקן כלשהו תומך בפעילויות מהימנות באינטרנט, הוא ייבחר. לבסוף, התנהגות ברירת המחדל היא לחזור למצב 'כרטיסיות מותאמות אישית'.
כלומר, אם אתם מאתרים באגים שקשורים לפעילויות מהימנות באינטרנט, עליכם לוודא שאתם משתמשים בדפדפן שאתם חושבים שאתם משתמשים בו. אפשר להשתמש בפקודה הבאה כדי לבדוק באיזה דפדפן נעשה שימוש:
> adb logcat -v brief | grep -e TWAProviderPicker
D/TWAProviderPicker(17168): Found TWA provider, finishing search: com.google.android.apps.chrome
השלבים הבאים
אם פעלתם לפי המדריך הזה, סביר להניח שהתכונה 'פעילות באתרים מהימנים' פועלת ותהיה לכם מספיק ידע כדי לנפות באגים ולגלות מה קורה כשהאימות נכשל. אם לא, כדאי לעיין במושגים נוספים של Android למפתחי אינטרנט או לשלוח דיווח על בעיה ב-GitHub לגבי המסמכים האלה.
בשלבים הבאים, מומלץ להתחיל ביצירת סמל לאפליקציה. לאחר מכן, תוכלו לשקול לפרוס את האפליקציה בחנות Play.