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

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

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