การลงทะเบียนเครื่องจัดการโปรโตคอลที่กำหนดเอง

ในที่สุด Chrome 13 ก็มี navigator.registerProtocolHandler แล้ว API นี้ช่วยให้เว็บแอปสามารถลงทะเบียนตัวเองเป็นตัวแฮนเดิลที่เป็นไปได้สำหรับโปรโตคอลบางอย่าง เช่น ผู้ใช้สามารถเลือกแอปพลิเคชันของคุณที่จะจัดการ "mailto" ลิงก์

ลงทะเบียนรูปแบบโปรโตคอล เช่น

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

พารามิเตอร์แรกคือโปรโตคอล อย่างที่ 2 คือรูปแบบ 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 มาตั้งแต่ FF3 ความแตกต่างอย่างหนึ่งในการใช้งาน Chrome คือโปรโตคอลที่กำหนดเอง ซึ่งต้องขึ้นต้นด้วย "web+" ดังที่แสดงในตัวอย่างด้านบน โปรโตคอลต่อไปนี้ไม่จำเป็นต้องใช้ "web+" คำนำหน้า: "mailto", "mms", "nntp", "rtsp", "webcal"

ดูข้อมูลเพิ่มเติมเกี่ยวกับ API นี้ได้ในบทความ MDN