כשמפתחים משתמשים בפעילות מאומתת באינטרנט באפליקציות שלהם, יכול להיות שהם יצטרכו להעביר מידע מהחלק המקורי של האפליקציה לאפליקציית ה-PWA (Progressive Web App).
תרחיש לדוגמה לשימוש באפשרות הזו הוא הטמעת פילוח ניתוח נתונים מותאם אישית כדי למדוד את מספר ההתקנות והסשנים שהתחילו מפעילות אינטרנט מהימנה. כדי להטמיע את האפשרות הזו, אפשר להוסיף פרמטרים של שאילתות לכתובת ה-URL של ההשקה.
שינוי כתובת ה-URL להתחלה
אם הפרמטר שמוענק ל-PWA יישאר זהה בכל המשתמשים וההשקות, אפשר לצרף את הפרמטר ישירות לכתובת ה-URL של ההשקה. דוגמה לשימוש כזה היא כשמפתחים רוצים למדוד את מספר סשני הניווט שנוצרו מפעילות אינטרנט מהימנה.
שימוש ב-Bubblewrap
Bubblewrap הוא כלי שנועד לעזור למפתחים ליצור פרויקט לאפליקציית Android שמפעילה אפליקציות PWA קיימות באמצעות פעילות מהימנה באינטרנט. הוא מכיל גם ספרייה וגם ממשק שורת פקודה (CLI).
יצירת פרויקט חדש
כשמשתמשים ב-Bubblewrap CLI, הפרויקט מופעל באמצעות הפקודה init
, וערכי ברירת המחדל נוצרים מתוך מניפסט אינטרנט שסופק כפרמטר:
bubblewrap init --manifest https://material.money/manifest.json
האשף ישתמש ב-start_url מ-Web Manifest כברירת מחדל ויבקש מהמשתמשים לאשר את הערך. כך למפתחים תהיה אפשרות להוסיף פרמטרים נוספים לכתובת ה-URL שמשמשת להפעלת אפליקציית ה-Progressive Web.
שינוי של פרויקט קיים
כש-Bubblewrap יוצר פרויקט, המידע על הפרויקט הזה מאוחסן בקובץ בשם twa-manifest.json
בתיקיית הפרויקט. כדי לשנות את כתובת ה-URL להתחלה של פרויקט קיים, המפתחים צריכים לשנות את הקובץ:
{
...
"startUrl": "/?utm_source=trusted-web-activity",
...
}
לאחר מכן יוצרים מחדש את קובצי הפרויקט ומחילים את כתובת ה-URL החדשה להתחלה.
bubblewrap update
באמצעות Android Studio
כשמשתמשים ב-Android Studio וב-LauncherActivity שמוגדרת כברירת מחדל, startUrl מוגדר כמטא תג בתוך AndroidManifest.xml, ואפשר לשנות אותו כדי לשנות את כתובת ה-URL שמשמשת להפעלת הפעילות באינטרנט המהימנה:
<activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"
android:label="@string/app_name">
...
<meta-data android:name="android.support.customtabs.trusted.DEFAULT_URL"
android:value="https://svgomg.firebaseapp.com/?utm_source=trusted-web-activity" />
...
</activity>
שינוי דינמי של כתובת ה-URL להתחלה
במקרים אחרים, מפתחים עשויים לרצות ליצור פרמטרים שמשתנים בין משתמשים או סשנים, למשל. ברוב המקרים, תצטרכו לאסוף פרטים מצד Android של האפליקציה כדי להעביר אותם לאפליקציית ה-Progressive Web.
שלב 1: יוצרים LauncherActivity מותאם אישית
public class CustomQueryStringLauncherActivity extends LauncherActivity {
private String getDynamicParameterValue() {
return String.valueOf((int)(Math.random() * 1000));
}
@Override
protected Uri getLaunchingUrl() {
// Get the original launch Url.
Uri uri = super.getLaunchingUrl();
// Get the value we want to use for the parameter value
String customParameterValue = getDynamicParameterValue();
// Append the extra parameter to the launch Url
return uri
.buildUpon()
.appendQueryParameter("my_parameter", customParameterValue)
.build();
}
}
שלב 2: משנים את AndroidManifest.xml
כך שישתמש ב-LauncherActivity בהתאמה אישית
<activity android:name="com.myapp.CustomQueryStringLauncherActivity"
android:label="@string/app_name">
...
<meta-data android:name="android.support.customtabs.trusted.DEFAULT_URL"
android:value="https://squoosh.app/?utm_source=trusted-web-activity" />
...
</activity>
סיכום
אפשר להעביר מידע מהחלק המקורי לחלק האינטרנט של האפליקציה באמצעות פרמטרים של שאילתות. כשמוסיפים פרמטר למחרוזת השאילתה, הוא יהיה נגיש לסקריפטים שפועלים בדף, ויכול גם להיכלל בהפניה כשמשתמשים מנווטים לדף אחר או כשהמפתח מטמיע פעולת שיתוף.
מפתחים צריכים להיות מודעים להשלכות האלה, ויכולים לצמצם אותן באמצעות קישור rel=noreferrer או ניקוי כתובת ה-URL באמצעות ממשק ה-API למיקום הדף.
פרוטוקול Trusted Web Activity לא מספק כרגע מנגנון להעברת הודעות עם החלק המקורי של האפליקציה אחרי ההפעלה של החלק באתר.
אנחנו מאמינים שממשקי ה-API הקיימים או העתידיים של פלטפורמת האינטרנט מאפשרים את רוב התרחישים לדוגמה שנדרשים למפתחים. אם אתם מחפשים ממשקי Web API חדשים או תכונות חדשות שצפויות בקרוב, כדאי לעיין בדף הסטטוס של יכולות חדשות.