2011-08-25 10 views
8

Próbuję otworzyć okno przeglądarki z mojej usługi za pomocą linku, który otwiera się w bieżącej zakładce przeglądarki. kiedy używaćOtwarta przeglądarka Androida z usługi unikając wielu zakładek

Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.com")); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
context.startActivity(intent); 

Jeśli przeglądarka została otwarta, a na pierwszym planie przed moim usługa uruchamia intencję i przeglądarka otwiera link w tym samym oknie/karcie. Jeśli przeglądarka została zminimalizowana, a usługa rozpoczyna zamiar, przeglądarka otwiera stronę w nowym oknie/karcie.

Nie mogę korzystać z widoku sieciowego, ponieważ musi on znajdować się w przeglądarce i będzie obsługiwał tylko domyślną przeglądarkę. Sprawdziłem wątek pod numerem Open an url in android browser, avoid multiple tabs, ale nie miałem odpowiedzi. Próbowałem również wymusić zamknięcie przeglądarki, ale to też nie działa.

Dziękuję za pomoc!

Odpowiedz

1

Jeśli chcesz korzystać z aplikacji na ogień tego zamiaru .. tak nazwać swoją aplikację bezpośrednio za nazwą pakietu sprawdzić poniższy kod:

Intent in = getPackageManager().getLaunchIntentForPackage("com.package.myappweb"); 
in.putExtra("myURL","http://www.google.com"); 
in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
startActivity(in); 

można przekazać URL dzięki woli i dostać go w Aplikacja przez:

String url=getIntent().getStringExtra("myURL"); 
if(url!=null){ 
/// launch app and use one tab for showing the webpage 
}else{ 
//launch app normally. 
} 

kod wymienionych wykorzystywane do korzystania aplikację jako web-app ..that pokaże okienko użyć, aby podnieść dowolną przeglądarkę do czynienia z linkiem .. nie byłoby to dla każdej aplikacji chcę otworzyć link

powodzenia,

1

Sposobem na uniknięcie wielu kart jest następująca:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(uri); 
intent.putExtra(Browser.EXTRA_APPLICATION_ID, getPackageName()); 
startActivity(intent); 

EXTRA_APPLICATION_ID będzie zawierać identyfikator aplikacji, a przeglądarka recyklingu kartę, która została otwarta przez aplikację , zamiast otwierać nową kartę. W ten sposób wszystkie strony otwarte przez twoją aplikację będą miały tę samą kartę i nie będziesz mieć "zakładki" w przeglądarce.

Powiązane problemy