يتضمّن الإصدار 13 من Chrome أخيرًا 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
وإزالة البيانات يدويًا من البروتوكول.
تجدر الإشارة إلى أنّ متصفّح Firefox قد نفَّذ navigator.registerProtocolHandler
منذ الإصدار 3. يتمثل أحد الاختلافات في طريقة تنفيذ Chrome في البروتوكولات المخصّصة. ويجب أن تسبق هذه الأرقام البادئة "web+"، كما هو موضّح في المثال أعلاه. لا تحتاج البروتوكولات التالية إلى البادئة "web+": "mailto" و"mms" و"nntp" و"rtsp" و"webcal".
يمكنك العثور على مزيد من المعلومات حول واجهة برمجة التطبيقات هذه في مقالة MDN.