Pakliže používáte nějakou webovou aplikaci, např. Gmail, pro práci s maily, jistě jste někdy narazili na problém, že jste chtěli někde kliknout na mailto: odkaz a ono se nic nestalo.
Dříve se to řešilo různými prográmy či pluginy do prohlížeče, ale už nějakou dobu umí minimálně Chrome, Mozila a Opera automaticky zaregistrovat libovolnou stránku k libovolnému URI schématu (i vlastnímu).
Chrome vám to v případě Gmailu i tuším jednou vyloženě nabídne, ale když to přehlédnete, tak už na to nemusíte narazit. Přitom je to velmi jednoduché – stačí si všimnout nenápadné ikonky vpravo v URL liště, která se tam objeví vždy, když mají stránky nějaký takový link handler k dispozici. Stačí pak kliknout, zvolit Povolit a potvrdit a služba je s příslušným handlerem spárovaná.
Podobně to umí i v Kalendáři se standardními webcal odkazy. We Windows 10 na vás možná vyskočí hláška, že je třeba to změnit v System / Default Apps / Choose default program by protocol (přiřadíte tam Chrome).
Jestli chcete prověřit současné přiřazení, či jej chcete smazat, navštivte stránku chrome://settings/handlers. (jak je to v jiných prohlížečích si vygůglete sami).
Zajímá-li vás, jak se může nějaká stránka přihlásit k nějakému takovému handleru, protože byste to chtěli třeba nějak užitečně využít ve vaší webové aplikaci, pak vězte, že je to strašně jednoduché – stačí jeden řádek a funkce registerProtocolHandler.
Např. kdyby Seznam chtěl zaregistrovat, aby jste po zadání kliknutí na odkaz s URI hledej:nějaká+fráze skočili na jeho vyhledavač, stačilo by, aby kamkoliv přidal následující skript
<script type="text/javascript"> navigator.registerProtocolHandler("hledej", "http://search.seznam.cz/?q=%s", "Hledej na Seznamu"); </script>
Ten zajistí, že se v URI objeví ta podivná ikonka, takže pak už vás jen bude muset přesvědčit, abyste na ní klikli a je to.
Z praktičtějšího soudku – řekněme, že vyvíjíte nějakou nějakou aplikaci pro správu úkolů, která poběží někde na různých doménách různých klientů, a chcete přitom, aby si mohli snadno zadávat úkoly a posílat je libovolným programem. Takže vytvoříte třeba schéma pro task:Název+úkolu&date=21.09.2015&from=email@example.com a uživatel, který dostane takový odkaz a klikne na něj, dostane task rovnou do své aplikace na svém serveru (jednotlivé parametry si odchytíte v té aplikci).
Protože je tahle funkcionalita ve zmíněných prohlížečích už 4 roky a je takhle primitivní pro nasazení, je trochu s podivem, že není k dispozici ani např. u největšího českého mailového poskytovatele – Seznamu. Tak snad jim můj post otevře oči.