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

التحكم في طريقة تشغيل تطبيقك

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

الوضع الحالي

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

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

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

لا يتوفّر معالج التشغيل إلا على نظام التشغيل ChromeOS.

دعم المتصفح

  • 110
  • 110
  • x
  • x

المصدر

واجهات

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

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

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

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

عرض توضيحي

يمكنك الاطّلاع على عرض توضيحي لواجهة برمجة تطبيقات معالج الإطلاق أثناء العمل في العرض التوضيحي لمُعالِج تشغيل PWA. احرص على مراجعة رمز المصدر للتطبيق لمعرفة كيفية استخدامه لواجهة برمجة التطبيقات Launch Handler API.

  1. ثبِّت تطبيق Musicr 2.0 على جهاز ChromeOS.
  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 في مربّع المكوّنات. تعمل ميزة الخطأ بشكلٍ رائع لمشاركة النسخ المُعاد إنتاجها بسرعة وسهولة.

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

هل تخطّط لاستخدام واجهة برمجة تطبيقات معالج الإطلاق؟ يساعد الدعم العام فريق Chromium على إعطاء الأولوية للميزات ويوضح لمورّدي المتصفحات الآخرين مدى أهمية دعمهم لها.

يمكنك إرسال تغريدة إلى @ChromiumDev باستخدام علامة التصنيف #LaunchHandler وإعلامنا بمكان استخدامها وكيفية استخدامها.

روابط مفيدة