Hur man öppnar en Android-app från webbläsaren

nov 29, 2021
admin

Att öppna en installerad app från en webbläsare kallas ofta för ”djuplänkning”, och i den här guiden får du lära dig hur du själv kan djuplänka till din Android-app. Vi fokuserar uteslutande på hur man utlöser en appöppning från en webbsida, snarare än från ett klick på en länk inuti andra appar. Om du vill ha en mer detaljerad titt på alla de olika standarder för djuplänkning som krävs för fullständig Android-täckning kan du läsa vår serie om djuplänkning till Android: Del 1, del 2, del 3 och del 4.

Android är utan tvekan en av de mest fragmenterade plattformar som utvecklare någonsin har behövt hantera, på grund av Googles beslut att tvinga tillverkarna av enheter att ansvara för portering av operativsystemet, vilket kräver bakåtkompatibilitet och stöd för en mängd olika enheter. I detta ekosystem får vi apputvecklare plocka upp bitarna. Deep linking på Android är tyvärr inte annorlunda – under åren har vi sett en uppsjö av tekniska krav som måste användas beroende på användarens omständigheter och sammanhang.

Notera att Branch kommer att implementera all denna komplexitet åt dig, vara värd för deep links och till och med ge dig robusta analyser bakom klick, appöppningar och händelser i nedre tratten. Du kan leka med Branch-länkar gratis genom att registrera dig här. Vi rekommenderar starkt att du använder våra verktyg i stället för att försöka bygga om dem från grunden, eftersom vi ger bort dem alla gratis.

Översikt över ändringar

Det finns två ställen där ändringar måste göras för att lyckas öppna din Android-app: din webbplats och din Android-app. Du hittar detaljerna för varje ändring i motsvarande avsnitt nedan.

Har du stöd för URI-scheman i din app

Ett URI-schema kan vara vilken sträng som helst utan specialtecken, t.ex. http, pinterest, fb eller myapp. Om du efter registreringen lägger till :// i slutet (t.ex. pinterest://) och klickar på den här länken öppnas Pinterest-appen. Om Pinterest-appen inte är installerad visas felmeddelandet ”Page Not Found”.

Det är enkelt att konfigurera din app för ett URI-schema. Till att börja med måste du välja en aktivitet i din app som du vill öppna när URI-schemat utlöses och registrera ett avsiktsfilter för den. Lägg till följande kod i <activity />-taggen i ditt manifest som motsvarar den aktivitet du vill öppna.

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

Du kan ändra your_uri_scheme till det URI-schema du vill ha. Helst vill du att det ska vara unikt. Om det överlappar med en annan apps URI-schema kommer användaren att se ett Android-väljare när han eller hon klickar på länken. Du ser ofta detta när du har flera webbläsare installerade, eftersom de alla registrerar sig för http URI.

Nästan vill du bekräfta att din app öppnades från URI-schemat. För att hantera den djupa länken i appen behöver du helt enkelt hämta avsiktsdatasträngen i den aktivitet som öppnades via klicket. Nedan följer ett exempel:

Uri data = this.getIntent().getData();if (data != null && data.isHierarchical()) {String uri = this.getIntent().getDataString();Log.i("MyApp", "Deep link clicked " + uri);}

Från här måste du göra string parsing för att läsa värdena som bifogats URI-schemat som kommer att vara mycket specifika för ditt användningsfall och din implementering.

Lägga till Javascript på din webbplats för att öppna din app

Nu när din Android-app är redo för att utlösas från ett URI-schema, är nästa del enkel. Du behöver bara lägga till Javascript på din webbplats som automatiskt utlöser att appen öppnas. Funktionen nedan, triggerAppOpen, kommer att försöka öppna appens URI-schema när du ersätter your_uri_scheme med det du lade till i manifestet ovan.

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);};

Du kan anropa triggerAppOpen i window.onload om du vill göra det vid sidinladdning, eller så kan du göra det vid ett klick på en länk någonstans på din webbplats. Båda fungerar och du får det avsedda resultatet.

Android är otroligt komplicerat och det finns kantfall överallt. Du kommer att tro att allt går bra tills du får den där användaren som klagar på att hans länkar inte fungerar på Facebook när han kör Android 4.4.4.4. Det är därför du bör använda ett verktyg som Branch för att slippa den här mardrömmen och se till att dina länkar fungerar överallt. Se till att begära en Branch-demo om du är intresserad av att lära dig mer.

Branch tillhandahåller den ledande plattformsoberoende länknings- och attributionsplattformen och erbjuder lösningar som förenar användarupplevelse och mätning över enheter och kanaler. Branch driver mobila länkar och plattformsoberoende mätning till mer än 3 miljarder månadsanvändare över hela världen och har valts av över 75 000 appar sedan 2014 – däribland Adobe, BuzzFeed, Yelp och många fler. Läs mer om Branch eller kontakta försäljningen idag.

Lämna ett svar

Din e-postadress kommer inte publiceras.