Jak otworzyć aplikację na Androida z przeglądarki
Otwarcie zainstalowanej aplikacji z przeglądarki jest często określane jako „głębokie linkowanie”, a z tym przewodnikiem dowiesz się, jak głębokie linkowanie do aplikacji na Androida dla siebie. Skupimy się wyłącznie na tym, jak wywołać otwarcie aplikacji ze strony internetowej, a nie z kliknięcia linku wewnątrz innych aplikacji. Aby uzyskać bardziej szczegółowe spojrzenie na wszystkie różne standardy głębokiego linkowania wymagane do pełnego pokrycia Android, proszę zobaczyć naszą serię Android głębokie linkowanie: Część 1, Część 2, Część 3 i Część 4.
Android jest, zdecydowanie, jedną z najbardziej pofragmentowanych platform, którymi deweloperzy kiedykolwiek musieli zarządzać, ze względu na decyzję Google, aby zmusić producentów urządzeń do bycia odpowiedzialnymi za portowanie systemu operacyjnego, co wymaga wstecznej kompatybilności i wsparcia wielu urządzeń. W tym ekosystemie, my, twórcy aplikacji, są w lewo, aby podnieść kawałki. Głębokie linkowanie na Androida jest niestety nie inaczej-over lat, widzieliśmy mnóstwo wymagań technicznych, które muszą być stosowane w zależności od okoliczności i kontekstu użytkownika.
Zauważ, że Oddział wdroży wszystkie te złożoności dla Ciebie, gospodarz głębokie linki, a nawet daje solidne analityki za kliknięć, otwarć aplikacji, i dół zdarzeń lejek. Możesz bawić się z linkami Branch za darmo, rejestrując się tutaj. Gorąco zalecamy korzystanie z naszych narzędzi zamiast próbować odbudować je od podstaw, ponieważ dajemy je wszystkie za darmo.
Przegląd zmian
Istnieją dwa miejsca, w których zmiany będą musiały być dokonane w celu pomyślnego otwarcia aplikacji na Androida: Twoja strona internetowa i Twoja aplikacja na Androida. Możesz znaleźć szczegóły każdej zmiany w odpowiednich sekcjach poniżej.
Adding Support for URI Schemes to Your App
Schemat URI może być dowolnym ciągiem bez znaków specjalnych, takich jak http, pinterest, fb lub myapp. Po zarejestrowaniu, jeśli dodasz :// do końca (np. pinterest://) i klikniesz ten link, otworzy się aplikacja Pinterest. Jeśli aplikacja Pinterest nie jest zainstalowana, zobaczysz błąd 'Page Not Found’.
Proste jest skonfigurowanie aplikacji dla schematu URI. Aby rozpocząć, musisz wybrać działanie w swojej aplikacji, które chcesz otworzyć, gdy schemat URI jest wyzwalany, i zarejestrować filtr intencji dla niego. Dodaj następujący kod w tagu <activity /> w swoim manifeście, który odpowiada aktywności, którą chcesz otworzyć.
<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>
Możesz zmienić your_uri_scheme na schemat URI, który chcesz. Idealnie, chcesz, aby był on unikalny. Jeśli pokrywa się on ze schematem URI innej aplikacji, użytkownik zobaczy selektor Androida po kliknięciu na link. Widzisz to często, gdy masz zainstalowanych wiele przeglądarek, ponieważ wszystkie one rejestrują się dla http URI.
Następnie będziesz chciał potwierdzić, że twoja aplikacja została otwarta ze schematu URI. Aby obsłużyć głęboki link w aplikacji, musisz po prostu złapać ciąg danych intencji w Aktywności, która została otwarta przez kliknięcie. Poniżej znajduje się przykład:
Uri data = this.getIntent().getData();if (data != null && data.isHierarchical()) {String uri = this.getIntent().getDataString();Log.i("MyApp", "Deep link clicked " + uri);}
Z tego miejsca będziesz musiał wykonać parsowanie ciągów znaków, aby odczytać wartości dołączone do schematu URI, które będą bardzo specyficzne dla twojego przypadku użycia i implementacji.
Dodanie Javascript do witryny, aby otworzyć aplikację
Teraz, gdy twoja aplikacja na Androida jest gotowa do wywołania ze schematu URI, następna część jest prosta. Musisz tylko dodać trochę Javascript do swojej strony internetowej, która będzie automatycznie wyzwalać otwarcie aplikacji. Poniższa funkcja, triggerAppOpen, będzie próbował otworzyć URI Twojej aplikacji po zastąpieniu your_uri_scheme tym, który dodałeś w manifeście powyżej.
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);};
Możesz wywołać triggerAppOpen w window.onload, jeśli chcesz to zrobić na ładowaniu strony, lub możesz zrobić to onclick linku gdzieś na swojej stronie. Albo działa i dostaniesz zamierzone wyniki.
Android jest niewiarygodnie skomplikowany i wszędzie są przypadki brzegowe. Będziesz myśleć, że wszystko idzie dobrze, dopóki nie dostaniesz, że jeden użytkownik skarży się, że jego linki nie działają na Facebooku podczas pracy Android 4.4.4. Dlatego właśnie powinieneś użyć narzędzia takiego jak Branch, aby zaoszczędzić sobie tego koszmaru i zapewnić, że Twoje linki działają wszędzie. Pamiętaj, aby poprosić o demo Gałęzi, jeśli jesteś zainteresowany dowiedzeniem się więcej.