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

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

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

الوضع الحالي

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

استخدام Launch Handler API

دعم المتصفح

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

  • Chrome: 110
  • ‫Edge: 110
  • Firefox: غير متوافق
  • Safari: غير متوافق

المصدر

واجهات

تحدِّد Launch Handler API واجهتَين جديدتَين.

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 معرفة تجاربك مع Launch Handler API.

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

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

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

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

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

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

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

روابط مفيدة