12

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

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

谢谢!

4

3 回答 3

20

您可以这样做:

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

……

于 2012-06-20T07:01:20.610 回答
8

最好的办法

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);
}
于 2015-02-06T07:51:40.607 回答
3

尝试使用 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 应用中。

于 2016-07-22T06:30:23.077 回答