2014-04-23 13 views
5

C'è un modo per aprire l'app Chrome su Android dal browser Android predefinito? Sono in grado di aprire l'app, ma non reindirizza l'utente per correggere la pagina. Questo è quello che ho provato:Apri l'app Chrome con l'URL

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

ho visto che io possa avere per formare un URL intento, ma speravo che c'è un modo molto più semplice di quello.

Questo dovrebbe provenire da una pagina Web e non è presente alcuna visualizzazione Web.

risposta

9

Sì, ma se non è installato sul sistema, verrà eseguito un ActivityNotFoundException. Se non è disponibile, è necessario avviare attraverso il normale browser:

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

ho effettivamente bisogno di un URL dato che non è un app. Che aspetto ha allora? – juminoz

+0

Non posso aiutarti con questo, ma averlo come normale URL dovrebbe essere predefinito per il browser selezionato o aprire una finestra di selezione (qualunque sia stata selezionata) ed è la normale procedura per Android. – Guardanis

0

tuo 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" 
/> 

tuo 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

Anche in questo caso non risponde alla mia domanda. Questo non è per un'app. Sta aprendo un'app dal browser. Non ho accesso alla visualizzazione web. – juminoz

2

ho aperto il mio Safe Browser App con ottenere il nome del pacchetto da Google Play, allo stesso modo in cui puoi aprire Chrome per impostazione predefinita anche:

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

È possibile sostituire il pacchetto com.cloudacl con questo com.android.chrome per aprire chrome.

0

Le soluzioni Intent sopra non sembrano più funzionare.

i seguenti lavori per me ..

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

2

Ecco una soluzione senza provare cattura, se Chrome installato sarà utilizzato, l'altro saggio andrà a dispositivo predefinito

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