هل تم تثبيت تطبيقك؟ ستخبرك إحدى هذه الأدوات الخطوات التالية: getثبِّتمنتجات ذات صلة() .

تتيح طريقة getInstalledRelatedApps() لموقعك الإلكتروني التحقّق مما إذا كان تطبيق Android أو UWP أو تطبيق الويب التقدّمي مثبَّتًا على جهاز المستخدم.

ما هي واجهة برمجة التطبيقات getInstalledRelatedApps()؟

تعرض الطريقة getInstalledRelatedApps() قائمة بالتطبيقات ذات الصلة المثبَّتة.

يؤدي استدعاء navigator.getInstalledRelatedApps() إلى عرض وعد يتم تنفيذه باستخدام مصفوفة من التطبيقات ذات الصلة المثبَّتة على جهاز المستخدم.

const relatedApps = await navigator.getInstalledRelatedApps();
relatedApps.forEach((app) => {
  console.log(app.id, app.platform, app.url);
});

تتيح هذه الواجهة لصفحتك التحقّق مما إذا كان تطبيق Android أو تطبيق Universal Windows Platform (UWP) أو تطبيق الويب التقدّمي (PWA) الخاص بك مثبّتًا على جهاز المستخدم، كما تتيح لك تخصيص تجربة المستخدم إذا كان مثبّتًا.

على سبيل المثال، إذا كان تطبيقك مثبَّتًا:

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

أنواع التطبيقات المتوافقة التي يمكنك التحقّق منها

نوع التطبيق يمكن التحقّق من خلال
تطبيق Android على أجهزة Android فقط:
الإصدار 80 من Chrome أو الإصدارات الأحدث
تطبيق Universal Windows Platform (منصة Windows العالمية) على أجهزة Windows فقط:
الإصدار 85 من Chrome أو الإصدارات الأحدث،
الإصدار 85 من Edge أو الإصدارات الأحدث
تطبيق ويب تقدّمي (PWA)
مثبَّت في النطاق نفسه على المصدر نفسه
Android:
الإصدار 84 من Chrome أو الإصدارات الأحدث
الكمبيوتر المكتبي (Windows أو macOS أو Linux أو ChromeOS):
الإصدار 140 من Chrome أو الإصدارات الأحدث
الإصدار 140 من Edge أو الإصدارات الأحدث
تطبيق ويب تقدّمي (PWA)
مثبَّت في نطاق مختلف على المصدر نفسه أو مصدر مختلف
على أجهزة Android فقط:
الإصدار 84 من Chrome أو الإصدارات الأحدث

التأكّد من تثبيت تطبيق Android

يمكن لموقعك الإلكتروني التحقّق مما إذا كان تطبيق Android مثبَّتًا.

متاح للاستخدام في

على أجهزة Android فقط: الإصدار 80 من Chrome أو الإصدارات الأحدث

إخبار تطبيق Android بموقعك الإلكتروني

عليك أولاً تعديل تطبيق Android لتحديد العلاقة بين موقعك الإلكتروني وتطبيق Android باستخدام نظام Digital Asset Links. يؤكّد ذلك أنّه يمكن لموقعك الإلكتروني فقط التحقّق مما إذا كان تطبيق Android مثبّتًا.

في AndroidManifest.xml لتطبيق Android، أضِف إدخال asset_statements على النحو التالي:

<manifest>
  <application>
       <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
     </application>
</manifest>

بعد ذلك، في strings.xml، أضِف بيان الأصول التالي، مع تعديل site ليصبح نطاقك. تأكَّد من تضمين أحرف الهروب.

<string name="asset_statements">
  [{
    \"relation\": [\"delegate_permission/common.handle_all_urls\"],
    \"target\": {
      \"namespace\": \"web\",
      \"site\": \"https://example.com\"
    }
  }]
</string>

بعد اكتمال العملية، ثبِّت التطبيق المعدَّل على الجهاز أو انشره على "متجر Google Play" أو أي من منصات توزيع تطبيقات Android الأخرى.

إخبار موقعك الإلكتروني بتطبيقك على Android

بعد ذلك، عليك إخبار موقعك الإلكتروني بتطبيق Android من خلال إضافة بيان تطبيق ويب إلى صفحتك. يجب أن يتضمّن البيان السمة related_applications، وهي عبارة عن مصفوفة تقدّم تفاصيل حول تطبيقك، بما في ذلك platform وid.

  • يجب أن يكون platform هو play
  • id هو معرّف حزمة Android
{
  "related_applications": [{
    "platform": "play",
    "id": "com.android.chrome"
  }]
}

التأكّد من تثبيت التطبيق

أخيرًا، استدعِ الدالة غير المتزامنة navigator.getInstalledRelatedApps() للتحقّق مما إذا كان تطبيق Android مثبّتًا.

التحقّق من تثبيت تطبيق Windows (UWP)

يمكن لموقعك الإلكتروني التحقّق مما إذا كان تطبيق Windows (الذي تم إنشاؤه باستخدام "النظام الأساسي العالمي" (UWP)) مثبّتًا.

متاح للاستخدام في

في نظام التشغيل Windows فقط: الإصدار 85 من Chrome أو الإصدارات الأحدث، الإصدار 85 من Edge أو الإصدارات الأحدث

إخبار تطبيق Windows بموقعك الإلكتروني

عليك تحديث تطبيق Windows لتحديد العلاقة بين موقعك الإلكتروني وتطبيق Windows باستخدام معالجات معرّف الموارد المنتظم. يؤكّد ذلك أنّه يمكن لموقعك الإلكتروني فقط التحقّق مما إذا كان تطبيق Windows مثبّتًا.

أضِف تسجيل إضافة Windows.appUriHandler إلى ملف بيان تطبيقك Package.appxmanifest. على سبيل المثال، إذا كان عنوان موقعك الإلكتروني هو example.com، عليك إضافة الإدخال التالي في ملف البيان الخاص بتطبيقك:

<Applications>
  <Application Id="App" ... >
      ...
      <Extensions>
         <uap3:Extension Category="windows.appUriHandler">
          <uap3:AppUriHandler>
            <uap3:Host Name="example.com" />
          </uap3:AppUriHandler>
        </uap3:Extension>
      </Extensions>
  </Application>
</Applications>

ملاحظة: قد تحتاج إلى إضافة مساحة الاسم uap3 إلى السمة <Package>.

بعد ذلك، أنشئ ملف JSON (بدون امتداد الملف .json) باسم windows-app-web-link وقدِّم اسم حزمة تطبيقك. ضَع هذا الملف إما في جذر الخادم أو في الدليل /.well-known/. يمكنك العثور على اسم عائلة الحزمة في قسم "التغليف" في مصمم بيان التطبيق.

[{
  "packageFamilyName": "MyApp_9jmtgj1pbbz6e",
  "paths": [ "*" ]
}]

اطّلِع على هذا العرض التوضيحي.

لمعرفة التفاصيل الكاملة حول إعداد معالجات معرّف الموارد المنتظم، يُرجى الاطّلاع على تفعيل التطبيقات للمواقع الإلكترونية باستخدام معالجات معرّف الموارد المنتظم للتطبيقات.

إخبار موقعك الإلكتروني عن تطبيق Windows

بعد ذلك، عليك إخبار موقعك الإلكتروني بتطبيق Windows من خلال إضافة بيان تطبيق ويب إلى صفحتك. يجب أن يتضمّن ملف البيان السمة related_applications، وهي عبارة عن مصفوفة تقدّم تفاصيل حول تطبيقك، بما في ذلك platform وid.

  • يجب أن يكون platform هو windows
  • id هو اسم مجموعة حِزم تطبيقك، ويتم إلحاقه بقيمة <Application> Id في ملف Package.appxmanifest.
{
  "related_applications": [{
    "platform": "windows",
    "id": "MyApp_9jmtgj1pbbz6e!App"
  }]
}

التأكّد من تثبيت التطبيق

وأخيرًا، استدعِ الدالة غير المتزامنة navigator.getInstalledRelatedApps() للتحقّق مما إذا كان تطبيق Windows مثبّتًا.

التحقّق مما إذا كان تطبيق الويب التقدّمي مثبَّتًا (ضمن النطاق)

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

متاح للاستخدام في

‫Android: الإصدار 84 من Chrome أو الإصدارات الأحدث

أجهزة الكمبيوتر (Windows وmacOS وLinux وChromeOS): الإصدار 140 من Chrome أو الإصدارات الأحدث، الإصدار 140 من Edge أو الإصدارات الأحدث

إخبار تطبيق الويب التقدّمي عن نفسه

يمكنك تعريف تطبيق الويب التقدّمي (PWA) بنفسه من خلال إضافة إدخال related_applications في بيان تطبيق الويب الخاص بتطبيقات الويب التقدّمية (PWA).

  • يجب أن يكون platform هو webapp
  • url هو المسار (يمكن أن يكون نسبيًا) إلى بيان تطبيق الويب التقدّمي (PWA)
  • id هو المسار الكامل إلى تطبيق الويب (مطلوب لأجهزة الكمبيوتر، وليس لأجهزة Android)
{
  
  "scope": "/",
  "start_url": "/",
  "related_applications": [{
    "platform": "webapp",
    "url": "/manifest.json",
    "id": "https://example.com"
  }],
  
}

التحقّق مما إذا كان تطبيق الويب التقدّمي مثبّتًا

أخيرًا، استدعِ الدالة غير المتزامنة navigator.getInstalledRelatedApps() من داخل نطاق تطبيق الويب التقدّمي للتحقّق من تثبيته. إذا تم استدعاء getInstalledRelatedApps() خارج نطاق تطبيق الويب التقدّمي، سيعرض []. يُرجى الاطلاع على القسم التالي للحصول على التفاصيل.

التحقّق مما إذا كان "تطبيق الويب التقدّمي" مثبَّتًا (خارج النطاق)

يمكن لموقعك الإلكتروني التحقّق مما إذا كان تطبيق الويب التقدّمي مثبّتًا، حتى إذا كانت الصفحة خارج نطاق تطبيق الويب التقدّمي. على سبيل المثال، يمكن لصفحة مقصودة معروضة من /landing/ التحقّق مما إذا كان تطبيق الويب التقدّمي المعروض من /pwa/ مثبّتًا، أو إذا كانت صفحتك المقصودة معروضة من www.example.com وكان تطبيق الويب التقدّمي معروضًا من app.example.com.

متاح للاستخدام في

على أجهزة Android فقط: الإصدار 84 من Chrome أو الإصدارات الأحدث

إخبار تطبيق الويب التقدّمي بموقعك الإلكتروني

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

أضِف ملف assetlinks.json إلى دليل /.well-known/ الخاص بالنطاق الذي تستضيف فيه تطبيق الويب التقدّمي، مثل app.example.com. في السمة site، أدخِل المسار الكامل إلى بيان تطبيق الويب الذي سيجري عملية التحقّق (وليس بيان تطبيق الويب الخاص بتطبيق الويب التقدّمي).

// Served from https://app.example.com/.well-known/assetlinks.json
[
  {
    "relation": ["delegate_permission/common.query_webapk"],
    "target": {
      "namespace": "web",
      "site": "https://www.example.com/manifest.json"
    }
  }
]

إخبار موقعك الإلكتروني عن تطبيق الويب التقدّمي

بعد ذلك، عليك إخبار موقعك الإلكتروني بتطبيق الويب التقدّمي من خلال إضافة بيان تطبيق ويب إلى صفحتك. يجب أن يتضمّن ملف البيان السمة related_applications، وهي عبارة عن مصفوفة تقدّم تفاصيل حول تطبيق الويب التقدّمي، بما في ذلك platform وurl.

  • يجب أن يكون platform هو webapp
  • url هو المسار الكامل إلى بيان تطبيق الويب التقدّمي (PWA)
{
  "related_applications": [{
    "platform": "webapp",
    "url": "https://app.example.com/manifest.json"
  }]
}

التحقّق مما إذا كان تطبيق الويب التقدّمي مثبّتًا

أخيرًا، استدعِ الدالة غير المتزامنة navigator.getInstalledRelatedApps() للتحقّق مما إذا كان تطبيق الويب التقدّمي مثبّتًا.

هل ما زالت لديك أسئلة؟

هل ما زالت لديك أسئلة؟ اطّلِع على العلامة getInstalledRelatedApps على StackOverflow لمعرفة ما إذا كان مستخدمون آخرون قد طرحوا أسئلة مشابهة. إذا لم يكن كذلك، اطرح سؤالك هناك، وتأكَّد من وضع العلامة progressive-web-apps عليه. يراقب فريقنا هذه العلامة بشكل متكرر ويحاول الإجابة عن أسئلتك.

الملاحظات

هل عثرت على خطأ في تنفيذ Chrome؟ أو هل يختلف التنفيذ عن المواصفات؟

  • يمكنك الإبلاغ عن الخطأ على https://new.crbug.com. يُرجى تضمين أكبر قدر ممكن من التفاصيل وتقديم تعليمات لإعادة إنتاج الخطأ وإدخال Mobile>WebAPKs في المربّع المكوّنات.

إظهار الدعم لواجهة برمجة التطبيقات

هل تخطّط لاستخدام واجهة برمجة التطبيقات getInstalledRelatedApps()؟ يساعد دعمك العلني فريق Chrome في تحديد أولويات الميزات، كما يوضّح لمورّدي المتصفحات الآخرين مدى أهمية توفيرها.

روابط مفيدة

شكرًا

نشكر Sunggook Chue من Microsoft على المساعدة في تقديم التفاصيل المتعلّقة باختبار تطبيقات Windows، ونشكر Rayan Kanso على المساعدة في تقديم تفاصيل Chrome.