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

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