Đăng ký trình xử lý giao thức tuỳ chỉnh

Cuối cùng, Chrome 13 cũng đã có navigator.registerProtocolHandler. API này cho phép ứng dụng web tự đăng ký làm trình xử lý có thể cho các giao thức cụ thể. Ví dụ: người dùng có thể chọn ứng dụng của bạn để xử lý các đường liên kết "mailto".

Đăng ký một giao thức như:

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

Tham số đầu tiên là giao thức. Mẫu URL thứ hai là của ứng dụng sẽ xử lý lược đồ này. Mẫu này phải bao gồm "%s" làm phần giữ chỗ cho dữ liệu và phải có cùng nguồn gốc với ứng dụng đang cố gắng đăng ký giao thức. Sau khi người dùng phê duyệt quyền truy cập, bạn có thể sử dụng đường liên kết này thông qua ứng dụng, các trang web khác, v.v.:

<a href="web+mystuff:some+data">Open in "My App"</a>

Khi nhấp vào đường liên kết đó, một yêu cầu GET sẽ được gửi đến http://example.com/rph?q=web%2Bmystuff%3A:some%20data. Do đó, bạn phải phân tích cú pháp tham số q và xoá dữ liệu khỏi giao thức theo cách thủ công.

Xin lưu ý rằng Firefox đã triển khai navigator.registerProtocolHandler kể từ FF3. Một điểm khác biệt trong cách triển khai của Chrome là về giao thức tuỳ chỉnh. Các URL đó cần có tiền tố là "web+", như trong ví dụ trên. Các giao thức sau đây không cần tiền tố "web+": "mailto", "mms", "nntp", "rtsp", "webcal".

Bạn có thể xem thêm thông tin về API này trong bài viết trên MDN.