تمرير المعلومات إلى نشاط ويب موثوق به باستخدام مَعلمات طلب البحث

عند استخدام نشاط الويب الموثوق به في تطبيقاتهم، قد يحتاج المطوّرون إلى تمرير المعلومات من الجزء الأصلي من التطبيق في تطبيق الويب التقدمي (PWA).

ومن حالات الاستخدام الشائعة لذلك تنفيذ تصنيفات مخصّصة في الإحصاءات لقياس عمليات التثبيت. والجلسات التي بدأت من "نشاط موثوق به على الويب". يمكن إضافة مَعلمات طلب البحث إلى عنوان URL الخاص بالإطلاق لتنفيذ ذلك.

تعديل عنوان URL للبدء

إذا ظلّت المَعلمة التي يتم تمريرها إلى تطبيق الويب التقدّمي (PWA) كما هي على مستوى المستخدمين يمكن إلحاق المعلمة مباشرةً بعنوان URL للتشغيل. مثال على هذا الاستخدام عندما يريد المطوّرون قياس عدد جلسات التنقّل التي تم إنشاؤها من شبكة موثوق بها على الويب النشاط.

استخدام أداة "الالتفاف الفقاعي"

Bubblewrap هي أداة تم إنشاؤها لمساعدة المطورين في إنشاء مشروع تطبيق Android الذي يشغِّل تطبيقات ويب تقدّمية (PWA) حالية باستخدام شبكة ويب موثوق بها النشاط. وتتضمّن مكتبة وواجهة سطر أوامر (CLI).

إنشاء مشروع جديد

عند استخدام Bubblewrap CLI، يتم تهيئة مشروع باستخدام الأمر init وإنشاء من بيان الويب، يتم تقديمها كمعلمة:

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

سيستخدم المعالج start_url من بيان الويب كإعداد افتراضي وسيطلب من المستخدمين تأكيد القيمة، ما يمنح المطوّرين الفرصة لإضافة معلَمات إضافية إلى عنوان URL المستخدَم لبدء تطبيق الويب التقدّمي

عرض ناتج واجهة سطر الأوامر Bubblewrap

تعديل مشروع حالي

عندما تُنشئ أداة فقاعة تفسيرية مشروعًا، يتم تخزين معلومات هذا المشروع المعيّن في ملف. يسمى twa-manifest.json، في مجلد المشروع. لتعديل عنوان URL الخاص ببدء مشروع حالي، يحتاج المطورون إلى تعديل الملف:

{
  ...
  "startUrl": "/?utm_source=trusted-web-activity",
  ...
}

بعد ذلك، عليك إعادة إنشاء ملفات المشروع وتطبيق عنوان URL للبدء الجديد.

bubblewrap update

استخدام "استوديو Android"

عند استخدام "استوديو Android" و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 المستخدم لتمريره إلى تطبيق الويب التقدمي.

الخطوة 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>

الخاتمة

يمكن تحقيق تمرير المعلومات من الجزء الأصلي إلى جزء الويب من التطبيق باستخدام مَعلمات طلب البحث. عند إضافة مَعلمة إلى سلسلة طلب البحث، ستتمكّن النصوص البرمجية من الوصول إليها. الإعلانات على الصفحة وقد تكون أيضًا جزءًا من الإحالة عندما ينتقل المستخدمون إلى صفحة مختلفة أو ينفذ المطور إجراء مشاركة.

ويجب أن يكون المطوّرون على دراية بهذه الآثار، ويمكنهم التخفيف من حدتها باستخدام link rel=noreferrer أو تنظيف عنوان URL باستخدام page location API.

ولا يوفر بروتوكول نشاط الويب الموثوق به حاليًا آلية لتبادل الرسائل مع الجزء الأصلي من التطبيق بعد استدعاء جزء الويب.

نعتقد أنّ واجهات برمجة تطبيقات Web Platform الحالية أو المقبلة ستتيح معظم حالات الاستخدام التي يحتاجها المطوّرون. في حال حذف إذا كنت تبحث عن واجهات برمجة تطبيقات جديدة أو قادمة على الويب، يمكنك الاطّلاع على صفحة حالة الإمكانات الجديدة.