2012-06-20 15 views
10

Ho un sito Web mobile che si collega a un video di YouTube. Su Android, facendo clic su questo collegamento viene visualizzata una finestra di dialogo che chiede all'utente di "Completare l'azione utilizzando" il proprio browser o l'app YouTube.Forza il video per l'apertura nell'app YouTube su Android

C'è un modo per aggirare questo schermo e riprodurre il video nell'app YouTube? (Ad esempio con un youtube: // URL.)

Grazie!

risposta

17

Ecco come si può fare:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube://" + id)); 
startActivity(intent); 

L'ID è l'identificativo dopo il punto interrogativo nell'URL. Per esempio: youtube.com/watch?v= ID

Un altro modo è:

Intent videoIntent = new Intent(Intent.ACTION_VIEW); 
videoIntent.setData(url); 
videoIntent.setClassName("com.google.android.youtube", "com.google.android.youtube.WatchActivity"); 
startActivity(videoIntent); 

......

+0

Grazie, proverò l'URL vnd.youtube:// domani e vediamo se funziona. – tba

+0

C'è un modo per verificare (da un sito web mobile) se un dispositivo può aprire URL vnd.youtube://? Vorrei che il mio sito aprisse vnd.youtube:// URL per Android e un normale http://youtube.com/watch? collegamento per iOS. – tba

+0

Almeno nessuno di quelli che conosco, mi dispiace – Tim

7

Il modo migliore

try { 

    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube://" + id)); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 

} catch (ActivityNotFoundException e) { 

    // youtube is not installed.Will be opened in other available apps 

    Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("https://youtube.com/watch?v=" + id)); 
    startActivity(i); 
} 
+0

Ho provato a utilizzare la soluzione, ma ho ottenuto "impossibile risolvere il contenuto dei simboli". Puoi spiegarmi per favore qual è questo contenuto? –

+0

@MarcosGuimaraes aggiornato – user3716835

+0

Grazie mille! Ora funziona. –

2

Try per utilizzare un reindirizzamento JavaScript come il seguente:

window.location = "vnd.youtube://the.youtube.video.url"; 

Più completo:

if(/Android/i.test(navigator.userAgent)) { 
    // If the user is using an Android device. 
    setTimeout(function() { window.location = "market://details?id=com.google.android.youtube"; }, 25); 
    window.location = "vnd.youtube://www.youtube.com/watch?v=yourVideoId"; 
} 

Se Youtube app è disattivata, la funzione di timeout favore usare l'app YouTube sul Play Store che consente di attivare l'applicazione. Il secondo reindirizzamento si aprirà e riprodurrà il video di YouTube sull'app Android di YouTube.

Se si è già passati all'app YouTube nell'intervallo di timeout, la funzione di timeout non verrà chiamata e non si passerà al Play Store ma rimarranno nell'app YouTube.

+0

Mi piace questa soluzione. Funziona anche per iOS? –

Problemi correlati