רישום handler מותאם אישית לפרוטוקול

גרסה 13 של Chrome כוללת סוף סוף את navigator.registerProtocolHandler. ה-API הזה מאפשר לאפליקציות אינטרנט לרשום את עצמן כרכיבי handler אפשריים עבור פרוטוקולים מסוימים. לדוגמה, משתמשים יכולים לבחור את האפליקציה שתטפל בקישורי "mailto".

רישום סכמת פרוטוקול כמו:

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

הפרמטר הראשון הוא הפרוטוקול. השני הוא תבנית כתובת ה-URL של האפליקציה שאמורה לטפל בסכימה הזו. הדפוס צריך לכלול '%s' כ-placeholder עבור נתונים, ועל הדפוס להיות באותו מקור כמו האפליקציה שמנסה לרשום את הפרוטוקול. אחרי שהמשתמש יאשר את הגישה, תהיה לך אפשרות להשתמש בקישור הזה דרך האפליקציה שלך, אתרים אחרים וכו':

<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 הוטמע מאז FF3. הבדל אחד בהטמעה של Chrome הוא בפרוטוקולים מותאמים אישית. התחילית של מילות המפתח האלה צריכה להיות "web+", כפי שאפשר לראות בדוגמה שלמעלה. הפרוטוקולים הבאים לא צריכים קידומת "web+": "mailto", "mms", "nntp", "rtsp", "webcal".

מידע נוסף על ה-API הזה זמין במאמר בנושא MDN.