我有一个链接到YouTube视频的移动网站。在Android上,点击此链接会显示一个对话框,要求用户使用他们的浏览器或Youtube应用程序“完成操作”。
有没有办法绕过这个屏幕,只是在Youtube应用中播放视频? (例如,使用youtube:// URL。)
谢谢!
答案 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应用中。