註冊自訂通訊協定處理常式

Chrome 13 終於包含 navigator.registerProtocolHandler。這個 API 可讓網頁應用程式註冊為特定通訊協定的可能處理常式。舉例來說,使用者可以選取您的應用程式來處理「mailto」連結。

註冊通訊協定配置,例如:

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

第一個參數是通訊協定。第二個是應處理此配置的應用程式網址模式。模式應包含「%s」做為資料的預留位置,且必須與嘗試註冊通訊協定的應用程式位於相同來源。使用者核准存取權後,您就可以透過應用程式、其他網站等使用這個連結:

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

按一下該連結會向 http://example.com/rph?q=web%2Bmystuff%3A:some%20data 提出 GET 要求。因此,您必須剖析 q 參數,並手動從通訊協定中移除資料。

值得一提的是,Firefox 自 FF3 起就已實作 navigator.registerProtocolHandler。Chrome 的實作方式與其他瀏覽器的差異之一,就是自訂通訊協定。這些項目必須加上「web+」前置字串,如上例所示。下列通訊協定不需要加上「web+」前置字串:「mailto」、「mms」、「nntp」、「rtsp」、「webcal」。

如要進一步瞭解這個 API,請參閱 MDN 文章