Вопрос по android-intent, youtube, android – Принудительно открывать видео в приложении Youtube на Android

11

У меня есть мобильный веб-сайт, который ссылается на видео на YouTube. В Android при нажатии на эту ссылку открывается диалоговое окно, в котором пользователю предлагается «завершить действие с помощью». их браузер или приложение Youtube.

Есть ли способ обойти этот экран и просто воспроизвести видео в приложении Youtube? (Например, с YouTube: // URL.)

Спасибо!

Ваш Ответ

3   ответа
19

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

Идентификатор - это идентификатор после вопросительного знака в URL. Например: youtube.com/watch?v=ID

Другой способ это:

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

......

Есть ли способ проверить (с мобильного сайта), может ли устройство открывать URL-адреса vnd.youtube://? Я хотел бы, чтобы мой сайт открывал vnd.youtube:// URL для Android и обычныйyoutube.com/watch? ссылка для iOS. tba
Знаете ли вы ссылку для каналов YouTube?
По крайней мере, ничего, что я знаю, извините
Спасибо, завтра я попробую URL vnd.youtube:// и посмотрю, работает ли он. tba
В моем случае 1-й способ по идентификатору работает хорошо, а 2-й - нет.
2

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

Более подробно:

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

Если приложение Youtube отключено, функция тайм-аута перенаправит вас на приложение YouTube в магазине игр, чтобы вы могли включить приложение. Появится второе перенаправление, и вы сможете воспроизвести видео на YouTube в приложении Android Youtube.

Если вы уже переключились на приложение YouTube в течение интервала времени ожидания, функция времени ожидания не будет вызываться, и вы не будете переключены в магазин воспроизведения, а останетесь в приложении YouTube.

Мне нравится это решение. Это работает для iOS также?
7

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);
}
@MarcosGuimaraes обновлен
Большое спасибо! Это работает сейчас.
Я пытался использовать ваше решение, но получил "не могу разрешить содержание символов". Не могли бы вы объяснить мне, что это за контент?

Похожие вопросы