تسجيل معالج بروتوكول مخصص

يتضمن Chrome 13 أخيرًا navigator.registerProtocolHandler. تسمح واجهة برمجة التطبيقات هذه لتطبيقات الويب بتسجيل نفسها كمعالجات ممكنة لبروتوكولات معيّنة. على سبيل المثال، يمكن للمستخدمين تحديد التطبيق الخاص بك للتعامل مع روابط "mailto".

تسجيل نظام بروتوكول مثل:

navigator.registerProtocolHandler(
    'web+mystuff', 'http://example.com/rph?q=%s', 'My App');

المعلمة الأولى هي البروتوكول. والثاني هو نمط عنوان URL للتطبيق الذي يجب أن يتعامل مع هذا المخطط. يجب أن يشتمل النمط على '%s' كعنصر نائب للبيانات ويجب أن يكون على نفس المصدر الذي يحاول التطبيق تسجيل البروتوكول. بعد موافقة المستخدِم على إذن الوصول، يمكنك استخدام هذا الرابط من خلال تطبيقك والمواقع الإلكترونية الأخرى وما إلى ذلك:

<a href="web+mystuff:some+data">Open in "My App"</a>

يؤدي النقر على هذا الرابط إلى تقديم طلب GET إلى http://example.com/rph?q=web%2Bmystuff%3A:some%20data. وبالتالي، عليك تحليل المَعلمة q وإزالة البيانات من البروتوكول يدويًا.

تجدر الإشارة إلى أنّه تم تنفيذ navigator.registerProtocolHandler في Firefox منذ FF3. يتمثل أحد الاختلافات في تنفيذ Chrome في البروتوكولات المخصصة. ويجب أن تكون تلك البادئة مسبوقة بـ "web+"، كما هو موضح في المثال أعلاه. لا تحتاج البروتوكولات التالية إلى البادئة "web+": "mailto" أو "mms" أو "nntp" أو "rtsp" أو "webcal".

يمكن العثور على مزيد من المعلومات حول واجهة برمجة التطبيقات هذه في مقالة MDN.