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

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

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

الوضع الحالي

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

استخدام واجهة برمجة التطبيقات Launch Handler API

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

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

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

  • 110
  • 110
  • x
  • x

المصدر

واجهات

تحدد واجهة برمجة تطبيقات Launch Handler واجهتين جديدتين.

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 الذي تم تمريره عند التشغيل. يُستخدَم هذا الإذن لتشغيل أغنية في تطبيق ويب تقدّمي (PWA) لمشغِّل الموسيقى.

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

عرض توضيحي

يمكنك الاطّلاع على عرض توضيحي لواجهة برمجة التطبيقات Launch Handler API أثناء استخدامها في العرض التوضيحي لإطلاق تطبيق 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 في التعرّف على تجاربك في استخدام واجهة برمجة التطبيقات Launch Handler API.

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

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

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

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

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

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

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

روابط مفيدة