2017-03-14 45 views
5

Jestem programistą internetowym. Obecnie pracuję nad aplikacją na Androida w Android Studio przy użyciu WebView, który uzyskuje dostęp do mojej witryny jako aplikacja na Androida. Jedna z moich stron zawiera wiele linków zewnętrznych. Moim celem jest, aby aplikacja na Androida obsługiwała linki zewnętrzne, takie jak aplikacja Gmail (podobnie jak Facebook i Line). Poniżej znajduje się przykład aplikacji Gmaila.Obsługa zewnętrznych łączy w Androidzie WebView, na przykład w aplikacji Gmail, ma postać

An email contains external link

Link clicked, then application open a new activity acts like a browser without leaving Gmail application

Każdy pomysł jak to zrobić?

+1

Trzeba [Chrome klienta Tabs] (https://developer.chrome.com/multidevice/android/customtabs). –

+0

Witam @ GergelyKőrössy, dziękuję za pomoc .. Spróbuję. – Dika

+0

@Dika sprawdź kod demo [tutaj] (https://guides.codepath.com/android/Chrome-Custom-Tabs) –

Odpowiedz

4

Jest to bardzo proste. Musisz użyć Chrome Custom Tabs zgodnie z sugestią Gergely oraz komentarzem. Poniżej znajduje się mały, funkcjonalny kod, który pomoże ci to osiągnąć.

Pierwszy dodać tę zależność do build.gradle (moduł: app)

compile 'com.android.support:customtabs:23.4.0' 

drugie dodać poniżej funkcja do kodu i po prostu przekazać ciąg URL do niego.

private void redirectUsingCustomTab(String url) 
{ 
    Uri uri = Uri.parse(url); 

    CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder(); 

    // set desired toolbar colors 
    intentBuilder.setToolbarColor(ContextCompat.getColor(this, R.color.colorPrimary)); 
    intentBuilder.setSecondaryToolbarColor(ContextCompat.getColor(this, R.color.colorPrimaryDark)); 

    // add start and exit animations if you want(optional) 
    /*intentBuilder.setStartAnimations(this, android.R.anim.slide_in_left, android.R.anim.slide_out_right); 
    intentBuilder.setExitAnimations(this, android.R.anim.slide_in_left, 
      android.R.anim.slide_out_right);*/ 

    CustomTabsIntent customTabsIntent = intentBuilder.build(); 

    customTabsIntent.launchUrl(activity, uri); 
} 

Resztę sam się zatroszczy. Ponieważ niestandardowe zakładki Chrome można spersonalizować, więc można zrobić wiele, tak jak można dodać menu do paska narzędzi. Szczegółowe informacje można znaleźć w oficjalnej dokumentacji od samego Google here.

nadzieję, że pomoże ci zacząć :)

+0

czy wymaga jakiegokolwiek kodu XML? – Dhiren

+1

Nie, wystarczy podać URL strony html hostowanej na serwerze. – Geek