רישום מטפל לפרוטוקול
אחד הפיצ'רים המעניינים ב-HTML5 הוא הרישום מטפל לפרוטוקול. מה זה אומר? בהרבה דפי אינטרנט ניתן למצוא קישורים שהכתובת בהם היא בפרוטוקול שהוא לא http. לדוגמא, הלינק הבא:
<a href="mailto:[email protected]">Mail</a>
הלינק הזה יפתח את תוכנת המייל שלכם ומשם תוכלו לשלוח מייל לכתובת [email protected]. אבל אם נרצה שהדפדפן ינווט לאתר מייל (כמו Gmail, Hotmail וכו'), ולא יפתח לנו את תוכנת המייל שמותקנת במחשב שלנו, כמו Outlook?
רישום מטפל לפרוטוקול מאפשר זאת: כל אתר שינסה לנווט ל: protocolName:text (לדוגמא – לינק שמוביל אל: mailto:[email protected]), יגיע אל האתר שלכם.
Gmail כבר משתמשים בזה – הם נרשמים כמטפלים לפרוטוקול mailto, כך שכל לינק עם הפרוטוקול הזה (כמו mailto:[email protected]) יוביל ל-Gmail (זאת כמובן אם אישרתם את זה).
הדבר המעניין ברישום מטפל לפרוטוקול הוא שניתן לרשום גם פרוטוקולים חדשים, שאנחנו ממציאים, בתנאי שהם מתחילים ב-web+. לדוגמא: web+myprotocol.
הרישום מתבצע בעזרת הפונקציה registerProtocolHandler באובייקט navigator. התחביר הוא:
navigator.registerProtocolHandler(protocol, uri, title);
אם נרצה שהאפליקציה שלנו בכתובת example.com תטפל בפרוטוקול web+myprotocol, קוד ה-JS הוא:
navigator.registerProtocolHandler('web+myprotocol', 'http://example.com/?q=%s', 'My App');
%s זה המידע שמועבר, כך שבלחיצה על הלינק:
<a href="web+myprotocol:somedata">link</a>
הדפדפן ינווט אל הכתובת http://example.com/?q=web%2Bmystuff%3Asomedata.
המידע שמועבר ב-%s כולל את שם הפרוטוקול ודורש פענוח, מפני שהוא מקודד.
כשאתר מנסה לרשום מטפל פרוטוקול, הכתובת צריכה להיות בדומיין שבו הוא נמצא (אתר a.com לא יוכל לקבוע ש-b.com יטפל בפרוטוקולים), והמשתמש צריך לאשר את השינוי – לדוגמא, בגוגל כרום מופיע סמל בשורת הכתובת.
כל פרוטוקול חדש צריך תוספת של web+ בהתחלה (לכן web+myprotocol ולא רק myprotocol), אך פרוטוקולים אחרים מופיעים בצורה הרגילה שלהם (mailto,mms,nntp,rtsp,webcal).
תגובות בפייסבוק