التحكّم في طريقة إطلاق التطبيق
تتيح لك واجهة برمجة تطبيقات Launch Handler إمكانية التحكّم في طريقة إطلاق تطبيقك، على سبيل المثال، ما إذا كان يستخدم نافذة حالية أو جديدة، وما إذا كان سيتم نقل النافذة المختارة إلى عنوان URL لبدء التشغيل. وكما هي الحال في واجهة File Handing API، يؤدّي ذلك أيضًا إلى إدراج كائن LaunchParams
في قائمة window.launchQueue
الخاصة بالصفحة التي تم تشغيلها.
الوضع الحالي
الخطوة | الحالة |
---|---|
1- إنشاء شرح | مكتمل |
2. إنشاء مسودة أولية للمواصفات | مكتمل |
3. جمع الملاحظات والتكرار التحسيني على التصميم | مكتملة |
4. مرحلة التجربة والتقييم. | مكتملة |
5. إطلاق | مكتمل |
استخدام واجهة برمجة التطبيقات Launch Handler API
المتصفحات المتوافقة
لا يتوفّر معالج الإطلاق إلا على نظام التشغيل ChromeOS.
واجهات
تحدد واجهة برمجة تطبيقات 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.
- تثبيت تطبيق Musicr 2.0 على جهاز ChromeOS
- إرسال رابط إلى نفسك في تطبيق محادثة بالنموذج
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
). - انقر على الرابط في تطبيق المحادثة ولاحظ طريقة فتح Musicr 2.0 وتشغيله.
- انقر على الرابط في تطبيق المحادثة مرة أخرى ولاحظ أنك لن تحصل على النسخة الثانية من Musicr 2.0.
إضافة ملاحظات
يرغب فريق Chromium في التعرّف على تجاربك في استخدام واجهة برمجة التطبيقات Launch Handler API.
أخبرنا عن تصميم واجهة برمجة التطبيقات
هل هناك شيء في واجهة برمجة التطبيقات لا تعمل كما توقعت؟ أو هل هناك طرق أو خصائص مفقودة تحتاجها لتنفيذ فكرتك؟ هل لديك سؤال أو تعليق على نموذج الأمان؟ يمكنك الإبلاغ عن مشكلة في المواصفات في مستودع GitHub المعنيّ، أو إضافة أفكارك إلى مشكلة حالية.
الإبلاغ عن مشكلة في التنفيذ
هل عثرت على خطأ في تنفيذ Chromium؟ أم أن التنفيذ يختلف عن المواصفات؟
عليك الإبلاغ عن خطأ على new.crbug.com. واحرص على تضمين أكبر قدر ممكن من التفاصيل،
وتعليمات بسيطة لإعادة الإنتاج، وإدخال Blink>AppManifest
في مربع المكونات.
تعمل ميزة Glitch بشكل رائع لمشاركة عمليات إعادة الضبط بسرعة وسهولة.
تقديم الدعم لواجهة برمجة التطبيقات
هل تخطط لاستخدام واجهة برمجة التطبيقات Launch Handler API؟ يساعد الدعم العام فريق Chromium في تحديد أولويات الميزات، ويوضح لمورّدي المتصفح الآخرين مدى أهمية دعمهم لهذه الميزات.
أرسِل تغريدة إلى @ChromiumDev باستخدام الهاشتاغ
#LaunchHandler
وأطلِعنا على مكان استخدامك لها وكيفية استخدامها.