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

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 文章