רישום 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 ולחתוך ידנית נתונים מהפרוטוקול.

חשוב לציין ש-navigator.registerProtocolHandler הוטמע ב-Firefox מאז FF3. אחת ההבדלים בהטמעה של Chrome היא בנושא פרוטוקולים מותאמים אישית. התחילית שלהם צריכה להיות 'web+‎', כפי שמוצג בדוגמה שלמעלה. אין צורך בתחילית 'web+‎' בפרוטוקולים הבאים: ‎"mailto", "mms", "nntp", "rtsp", "webcal".

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