فتح واجهة برمجة تطبيقات المعالج

التحكّم في كيفية إطلاق تطبيقك

تتيح لك Launch Handler API التحكّم في كيفية تشغيل تطبيقك، على سبيل المثال، ما إذا كان يستخدم نافذة حالية أو جديدة وما إذا كان يتم الانتقال من النافذة التي تم اختيارها إلى عنوان URL لبدء التشغيل. كما هو الحال مع File Handing API، يؤدي ذلك أيضًا إلى إضافة عنصر LaunchParams إلى window.launchQueue الصفحة التي تمّ تشغيلها.

الوضع الحالي

الخطوة الحالة
1. إنشاء فيديو توضيحي مكتمل
2. إنشاء مسودة أولية للمواصفات مكتمل
3- جمع الملاحظات وتحسين التصميم مكتملة
4. مرحلة التجربة والتقييم مكتملة
5- إطلاق مكتمل

استخدام Launch Handler API

دعم المتصفح

توافق المتصفّح

  • Chrome: 110.
  • الحافة: 110.
  • Firefox: غير متوافق
  • Safari: غير متوافق

المصدر

واجهات

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

LaunchParams : عنصر يحتوي على targetURL ليعالجه المستهلك. LaunchQueue : يتم تشغيل قوائم الانتظار إلى أن يعالجها المستهلك المحدّد.

عنصر البيان launch_handler

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

{
  "launch_handler": {
    "client_mode": "navigate-new"
  }
}

إذا لم يتم تحديد قيمة، يتم ضبط launch_handler تلقائيًا على {"client_mode": "auto"}. القيم المسموح بها للحقول الفرعية هي:

  • client_mode:
    • navigate-new: يتم إنشاء سياق تصفّح جديد في نافذة تطبيق ويب لتحميل عنوان URL المستهدف لبدء التشغيل.
    • navigate-existing: يتم الانتقال إلى عنوان URL المستهدَف لعملية الإطلاق خلال آخر تفاعل مع سياق التصفّح في نافذة تطبيق الويب.
    • focus-existing: يتم اختيار سياق التصفّح الذي تم التفاعل معه مؤخرًا في نافذة تطبيق الويب لمعالجة عملية الإطلاق. سيتم إدراج عنصر LaunchParams جديد تم ضبط targetURL الخاص به على عنوان URL لبدء التشغيل في window.launchQueue للمستند.
    • auto: يتوقف سلوك وكيل المستخدم على اختيار التطبيق الأنسب للمنصة. على سبيل المثال، تتيح الأجهزة الجوّالة استخدام عملاء فرديين فقط وستستخدم existing-client، في حين تتيح أجهزة الكمبيوتر المكتبي استخدام نوافذ متعدّدة وستستخدم navigate-new لتجنّب فقدان البيانات.

تقبل السمة client_mode أيضًا قائمة (صفيف) من القيم، وسيتم استخدام القيمة الصالحة الأولى. يهدف ذلك إلى السماح بإضافة قيم جديدة إلى المواصفات بدون إيقاف التوافق مع الإصدارات السابقة مع عمليات التنفيذ الحالية.

على سبيل المثال، في حال إضافة القيمة الافتراضية "focus-matching-url"، ستحدد المواقع الإلكترونية "client_mode": ["focus-matching-url", "navigate-existing"] لمواصلة التحكّم في سلوك المتصفّحات القديمة التي لا تتوافق مع "focus-matching-url".

استخدام window.launchQueue

في الرمز البرمجي التالي، تستخرج الدالة extractSongID() songID من عنوان URL الذي تم تمريره عند الإطلاق. يُستخدَم هذا الإذن لتشغيل أغنية في تطبيق ويب متقدّم لمشغّل موسيقى.

if ('launchQueue' in window) {
  launchQueue.setConsumer((launchParams) => {
    if (launchParams.targetURL) {
      const songID = extractSongId(launchParams.targetURL);
      if (songID) {
        playSong(songID);
      }
    }
  });
}

عرض توضيحي

يمكنك الاطّلاع على عرض توضيحي لواجهة برمجة التطبيقات Launch Handler API في العرض التوضيحي لمعالج إطلاق التطبيقات المتوافقة مع الويب. احرص على مراجعة رمز المصدر للتطبيق لمعرفة كيفية استخدامه لواجهة برمجة التطبيقات Launch Handler API.

  1. ثبِّت تطبيق Musicr 2.0.
  2. أرسِل رابطًا إلى نفسك في تطبيق محادثة على النحو التالي: https://launch-handler.glitch.me?track=https://example.com/music.mp3. (يمكنك تخصيص https://example.com/music.mp3 لأي عنوان URL يشير إلى ملف صوتي، على سبيل المثال، https://launch-handler.glitch.me?track=https://cdn.glitch.me/3e952c9c-4d6d-4de4-9873-23cf976b422e%2Ffile_example_MP3_700KB.mp3?v=1638795977190).
  3. انقر على الرابط في تطبيق المحادثة، ولاحظ كيف يفتح تطبيق Musicr 2.0 المقطع الصوتي ويشغّله.
  4. انقر على الرابط في تطبيق الدردشة مرة أخرى ولاحظ أنك لن تحصل على نسخة أخرى من Musicr 2.0.

ملاحظات

يرغب فريق Chromium في معرفة رأيك في واجهة برمجة تطبيقات معالج الإطلاق.

أخبِرنا عن تصميم واجهة برمجة التطبيقات.

هل هناك أي مشكلة في واجهة برمجة التطبيقات لا تعمل بالشكل الذي توقعته؟ هل هناك طُرق أو سمات مفقودة تحتاجها لتنفيذ فكرتك؟ هل لديك سؤال أو تعليق حول ملف أمان الحساب؟ يمكنك الإبلاغ عن مشكلة في المواصفات في مستودع GitHub المقابل، أو إضافة ملاحظاتك إلى مشكلة حالية.

الإبلاغ عن مشكلة في التنفيذ

هل عثرت على خطأ في عملية تنفيذ Chromium؟ أم أنّ عملية التنفيذ مختلفة عن المواصفات؟ يمكنك إرسال بلاغ عن خلل على الرابط new.crbug.com. احرص على تضمين أكبر قدر ممكن من التفاصيل، وتعليمات لإعادة إنتاج الخلل، وأدخِل Blink>AppManifest في مربّع المكوّنات. يعمل تطبيق Glitch بشكل رائع لمشاركة عمليات إعادة التقديم السريعة.

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

هل تخطّط لاستخدام Launch Handler API؟ يساعد دعمك العلني فريق Chromium في تحديد الميزات ذات الأولوية وإظهار مدى أهمية توفيرها لمطوّري المتصفّحات الآخرين.

أرسِل تغريدة إلى ‎@ChromiumDev باستخدام الهاشتاغ #LaunchHandler و أخبِرنا بالمكان الذي تستخدم فيه هذه الميزة وطريقة استخدامك لها.

روابط مفيدة