2014-04-23 15 views
5

Czy istnieje sposób otwierania aplikacji Chrome na Androida z domyślnej przeglądarki Androida? Mogę otworzyć aplikację, ale nie przekierowuję użytkownika do poprawnej strony. To, co starałem:Otwórz aplikację Chrome z adresem URL

<a href="googlechrome://www.toovia.com"> 

Widziałem, że może mam zamiaru tworzyć URL, ale miałem nadzieję, że jest znacznie łatwiejszy sposób niż to.

To ma pochodzić ze strony internetowej i nie ma udziału w sieci.

Odpowiedz

9

Tak, ale jeśli nie jest zainstalowany w systemie, zostanie uruchomiony wyjątek ActivityNotFoundException. Jeśli nie jest dostępny, należy uruchomić poprzez normalną przeglądarkę:

String url = "http://mysuperwebsite"; 
try { 
    Intent i = new Intent("android.intent.action.MAIN"); 
    i.setComponent(ComponentName.unflattenFromString("com.android.chrome/com.android.chrome.Main")); 
    i.addCategory("android.intent.category.LAUNCHER"); 
    i.setData(Uri.parse(url)); 
    startActivity(i); 
} 
catch(ActivityNotFoundException e) { 
    // Chrome is not installed 
    Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
    startActivity(i); 
} 
+1

I rzeczywiście potrzebują URL, ponieważ nie znajduje się aplikacja. Jak to wygląda? – juminoz

+0

Nie mogę ci w tym pomóc, ale posiadanie tego jako zwykłego adresu URL powinno domyślnie odpowiadać wybranej przeglądarce lub otwierać okno wyboru (niezależnie od tego, które zostały wybrane) i jest normalnym procesem dla Androida. – Guardanis

0

Twój xml:

<?xml version="1.0" encoding="utf-8"?> 
<WebView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/webView1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
/> 

Twój WebViewActivity:

public class WebViewActivity extends Activity { 

    private WebView webView; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.webview); 

     webView = (WebView) findViewById(R.id.webView1); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.loadUrl("http://www.google.com"); 
    } 
} 
+0

To znowu nie odpowiada na moje pytanie. To nie jest dla aplikacji. Otwiera aplikację z przeglądarki. Nie mam dostępu do widoku internetowego. – juminoz

2

Otworzyłam Safe Browser App z coraz nazwy pakietu z Google Play, tak samo jak domyślnie można otworzyć także dla chrome:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(Uri.parse("http://Your URL")); 
intent.setPackage("com.cloudacl"); // package of SafeBrowser App 
startActivity(intent); 

Możesz zastąpić pakiet com.cloudacl tym com.android.chrome, aby otworzyć chrome.

0

Powyższe rozwiązania Intent już nie działają.

następujące prace dla mnie ..

document.location = '? Googlechrome: // nawigacja url = www.tovia.com /';

2

Oto rozwiązanie bez try catch, jeśli chrom zainstalowany zostanie użyty inny mądry będzie przejść do ustawień urządzenia

void open(Activity activity, String url) { 
    Uri uri = Uri.parse("googlechrome://navigate?url=" + url); 
    Intent i = new Intent(Intent.ACTION_VIEW, uri); 
    if (i.resolveActivity(activity.getPackageManager()) == null) { 
     i.setData(Uri.parse(url)); 
    } 
    activity.startActivity(i); 
} 
Powiązane problemy