强制视频在Android上的Youtube应用中打开

时间:2012-06-20 06:56:07

标签: android android-intent youtube

我有一个链接到YouTube视频的移动网站。在Android上,点击此链接会显示一个对话框,要求用户使用他们的浏览器或Youtube应用程序“完成操作”。

有没有办法绕过这个屏幕,只是在Youtube应用中播放视频? (例如,使用youtube:// URL。)

谢谢!

3 个答案:

答案 0 :(得分:19)

以下是你如何做到这一点:

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

id是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);

...

答案 1 :(得分: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);
}

答案 2 :(得分:2)

尝试使用如下所示的JavaScript重定向:

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应用,超时功能会将您重定向到Play商店中的youtube应用,以启用该应用。第二个重定向将弹出并在Android Youtube应用上播放YouTube视频。

如果您已在超时间隔内切换到YouTube应用,则系统不会调用超时功能,也不会切换到Play商店,而是保留在YouTube应用中。