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