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