2013-04-17 81 views
14

Khi truy cập Google Mail hoặc Lịch Google từ Chrome, biểu tượng nhỏ xuất hiện trong thanh địa chỉ cho phép cài đặt trình xử lý dịch vụ tùy chỉnh cho lược đồ URI (được đánh dấu bằng hình vuông màu đỏ trong hình).Cài đặt trình xử lý dịch vụ cho sơ đồ URI từ trang web

Icon for installing custom service handler

Tooltip cho biểu tượng là: This page wants to install a service handler. Khi tôi nhấp vào biểu tượng và cho phép Google Mail xử lý các liên kết mailto:, tất cả các liên kết mailto: đang mở trong Chrome.

Có thể tạo trang web có thể cài đặt trình xử lý tùy chỉnh cho lược đồ URI tùy chỉnh của tôi giống như Gmail không?

Trả lời

21

Đối với Chrome (13 +), Firefox (3.0+) và Opera (11.60+) có thể đăng ký ứng dụng web như trình điều khiển dịch vụ cho URI scheme tùy chỉnh sử dụng JavaScript API:

window.navigator.registerProtocolHandler(protocol, uri, title); 
  • là giao thức mà trang web muốn xử lý, được chỉ định dưới dạng chuỗi.
  • uri là URI cho trình xử lý dưới dạng chuỗi. Bạn có thể bao gồm "% s" để cho biết vị trí chèn URI đã thoát của tài liệu cần xử lý.
  • title là tiêu đề của trình xử lý được hiển thị cho người dùng dưới dạng chuỗi.

Cụ thể dành cho Chrome có một giới hạn không cho phép sử dụng các chương trình tùy chỉnh mà không bắt đầu với web+ tiền tố (trừ những tiêu chuẩn: mailto, mms, nntp, rtspwebcal). Vì vậy, nếu bạn muốn đăng ký ứng dụng web của bạn như trình điều khiển dịch vụ như Gmail làm, bạn nên viết một cái gì đó như thế này:

navigator.registerProtocolHandler("mailto", "https://www.example.com/?uri=%s", "Example Mail"); 

hoặc

navigator.registerProtocolHandler("web+myscheme", "https://www.example.com/?uri=%s", "My Cool App"); 

Chú ý ở mẫu URI, nó phải chứa %s mà sẽ được thay thế bằng URI thực của người dùng nhấp chuột liên kết. Ví dụ:

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

sẽ kích hoạt GET yêu cầu http://www.example.com/?uri=web%2Bmyscheme%3Asome%20data

Dưới đây là một số liên kết hữu ích:

+0

Điều đó rất hữu ích. –