העברת מידע לפעילות מהימנה באינטרנט באמצעות פרמטרים של שאילתות

כשמשתמשים ב'פעילות באינטרנט מהימנה' באפליקציות שלהם, יכול להיות שמפתחים יצטרכו להעביר מידע את החלק המקורי של האפליקציה ב-Progressive Web App (PWA).

תרחיש נפוץ לדוגמה: הטמעת פילוחים בהתאמה אישית של ניתוח נתונים כדי למדוד התקנות וסשנים שהתחילו ב'פעילות באינטרנט מהימנה'. ניתן להוסיף פרמטרים של שאילתה לכתובת ה-URL להפעלה כדי ליישם אותו.

שינוי כתובת ה-URL להתחלה

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

שימוש ב-בועות

בועות הוא כלי שנוצר כדי לעזור למפתחים ליצור פרויקט עבור אפליקציה ל-Android שמפעילה אפליקציות PWA קיימות באמצעות אתר מהימן פעילות. הקוד מכיל גם ספרייה וגם ממשק שורת הפקודה (CLI).

יצירת פרויקט חדש

כשמשתמשים בCLI של בועת בועות, המערכת מפעילה את הפקודה init ויוצרת ערכי ברירת מחדל ממניפסט אינטרנט, שמופיעים כפרמטר:

bubblewrap init --manifest https://material.money/manifest.json

האשף ישתמש ב-start_url ממניפסט האינטרנט כברירת מחדל ויבקש מהמשתמשים לאשר וכך לתת למפתחים אפשרות להוסיף עוד פרמטרים לכתובת האתר שמשמשת להפעלת האתר Progressive Web App.

מוצג הפלט של ה-CLI של בועת בועות

שינוי של פרויקט קיים

כש-בועות יוצרות פרויקט, המידע על אותו פרויקט מאוחסן בקובץ שנקרא 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 App.

שלב 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 כך שישתמשו בפעילות המותאמת אישית במרכז האפליקציות

<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>

סיכום

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

המפתחים צריכים להיות מודעים להשלכות האלה, ולצמצם אותן באמצעות link rel=noreferrer או לנקות את כתובת ה-URL באמצעות page location API.

הפרוטוקול 'פעילות באינטרנט מהימנה' לא מספק כרגע מנגנון לשליחת הודעות החלק המקורי של האפליקציה לאחר הפעלת חלק ה-Web.

אנחנו מאמינים שממשקי API קיימים או קרובים של Web Platform מפעילים את רוב התרחישים לדוגמה שנדרשים למפתחים. אם המיקום אם אתם מחפשים ממשקי API חדשים או צפויים בקרוב, כדאי לעיין בדף הסטטוס של יכולות חדשות.