Jak otevřít aplikaci pro Android z prohlížeče
Otevření nainstalované aplikace z prohlížeče se často označuje jako „hluboké propojení“ a v tomto průvodci se dozvíte, jak si sami vytvořit hluboké propojení do aplikace pro Android. Zaměříme se výhradně na to, jak vyvolat otevření aplikace z webové stránky, nikoli z kliknutí na odkaz uvnitř jiných aplikací. Podrobnější informace o všech různých standardech hloubkového propojení, které jsou nutné pro kompletní pokrytí systému Android, najdete v našem seriálu o hloubkovém propojení v systému Android:
Android je zdaleka jednou z nejvíce roztříštěných platforem, které kdy museli vývojáři spravovat, a to kvůli rozhodnutí společnosti Google přinutit výrobce zařízení, aby byli zodpovědní za portování operačního systému, což vyžaduje zpětnou kompatibilitu a podporu mnoha zařízení. V tomto ekosystému jsme my, vývojáři aplikací, odkázáni na to, abychom sbírali kousky. Hluboké propojení v systému Android se bohužel neliší – v průběhu let jsme byli svědky nepřeberného množství technických požadavků, které je třeba použít v závislosti na okolnostech a kontextu uživatele.
Všimněte si, že společnost Branch za vás celou tuto složitost implementuje, bude hostovat hluboké odkazy, a dokonce vám poskytne robustní analytiku za kliknutí, otevření aplikace a události v dolním trychtýři. S odkazy Branch si můžete zdarma pohrát, když se zaregistrujete zde. Důrazně doporučujeme používat naše nástroje místo toho, abyste se je pokoušeli předělávat od nuly, protože je všechny poskytujeme zdarma.
Přehled změn
Pro úspěšné otevření aplikace pro Android bude třeba provést změny na dvou místech: na webu a v aplikaci pro Android. Podrobnosti o jednotlivých změnách najdete v příslušných částech níže.
Přidání podpory schémat URI do vaší aplikace
Schéma URI může být jakýkoli řetězec bez speciálních znaků, například http, pinterest, fb nebo myapp. Pokud po registraci připojíte na konec :// (např. pinterest://) a kliknete na tento odkaz, otevře se aplikace Pinterest. Pokud aplikace Pinterest není nainstalována, zobrazí se chyba „Stránka nebyla nalezena“.
Je jednoduché nakonfigurovat aplikaci pro schéma URI. Pro začátek je třeba vybrat aktivitu v aplikaci, kterou chcete otevřít při spuštění schématu URI, a zaregistrovat pro ni filtr záměrů. Do tagu <activity /> v rámci manifestu, který odpovídá aktivitě, kterou chcete otevřít, přidejte následující kód:
<intent-filter><data android:scheme="your_uri_scheme" /><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /></intent-filter>
Můžete změnit your_uri_scheme na schéma URI, které chcete. V ideálním případě chcete, aby bylo jedinečné. Pokud se bude překrývat se schématem URI jiné aplikace, zobrazí se uživateli po kliknutí na odkaz výběr systému Android. Často se s tím setkáte, pokud máte nainstalováno více prohlížečů, protože všechny se registrují pro http URI.
Dále budete chtít potvrdit, že vaše aplikace byla otevřena ze schématu URI. Chcete-li v aplikaci zpracovat hluboký odkaz, musíte jednoduše zachytit datový řetězec záměru v aktivitě, která byla otevřena prostřednictvím kliknutí. Níže je uveden příklad:
Uri data = this.getIntent().getData();if (data != null && data.isHierarchical()) {String uri = this.getIntent().getDataString();Log.i("MyApp", "Deep link clicked " + uri);}
Odtud budete muset provést rozbor řetězce, abyste přečetli hodnoty připojené ke schématu URI, které budou velmi specifické pro váš případ použití a implementaci.
Přidání Javascriptu na webovou stránku pro otevření aplikace
Teď, když je vaše aplikace pro Android připravena na spuštění ze schématu URI, je další část jednoduchá. Stačí, když na své webové stránky přidáte nějaký Javascript, který automaticky spustí otevření vaší aplikace. Níže uvedená funkce triggerAppOpen se pokusí otevřít schéma URI vaší aplikace, jakmile nahradíte your_uri_scheme schématem, které jste přidali do manifestu výše.
var fallbackToStore = function() { window.location.replace('market://details?id=com.myapp.package');};var openApp = function() { window.location.replace('your_uri_scheme://');};var triggerAppOpen = function() { openApp(); setTimeout(fallbackToStore, 250);};
Mohli byste zavolat triggerAppOpen do window.onload, pokud byste to chtěli provést při načtení stránky, nebo byste mohli vytvořit funkci onclick odkazu někde na vašem webu. Obojí funguje a dosáhneš zamýšlených výsledků.
Android je neuvěřitelně komplikovaný a všude jsou okrajové případy. Budete si myslet, že všechno jde dobře, dokud si jeden uživatel nebude stěžovat, že mu nefungují odkazy na Facebooku a přitom používá Android 4.4.4. Vždycky se vám bude zdát, že je všechno v pořádku. Proto byste měli používat nástroj, jako je Branch – ušetří vás této noční můry a zajistí, že vaše odkazy budou fungovat všude. Pokud máte zájem dozvědět se více, určitě si vyžádejte ukázku nástroje Branch.