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

Chrome 13 cuối cùng cũng bao gồm navigator.registerProtocolHandler. API này cho phép các ứng dụng web tự đăng ký làm trình xử lý có thể có 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 lược đồ 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. Lý do thứ hai là mẫu URL của ứng dụng sẽ xử lý giao thức này. Mẫu này phải bao gồm "%s" làm phần giữ chỗ cho dữ liệu, cũng như phải có cùng nguồn gốc với ứng dụng đang tìm cách đă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ủa mình, các trang web khác, v.v.:

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

Việc nhấp vào đường liên kết đó sẽ gửi một yêu cầu GET đế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à loại bỏ dữ liệu khỏi giao thức theo cách thủ công.

Điểm đáng chú ý là Firefox đã triển khai navigator.registerProtocolHandler kể từ FF3. Một điểm khác biệt trong quá trình triển khai của Chrome là xoay quanh giao thức tuỳ chỉnh. Những sự kiện đó cần có tiền tố "web+", như trong ví dụ ở trên. Các giao thức sau 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 MMDN.