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

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

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

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

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

שימוש בניילון בועות

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

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

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

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

כברירת מחדל, האשף ישתמש ב-start_url ממניפסט האינטרנט ויבקש מהמשתמשים לאשר את הערך, וכך המפתחים יוכלו להוסיף עוד פרמטרים לכתובת ה-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: יצירת פעילות במרכז אפליקציות בהתאמה אישית

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>

סיכום

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

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

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

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