我有一个链接到 youtube 视频的移动网站。在 Android 上,单击此链接会弹出一个对话框,要求用户“使用”他们的浏览器或 Youtube 应用程序“完成操作”。
有没有办法绕过这个屏幕,只在 Youtube 应用程序中播放视频?(例如使用 youtube:// URL。)
谢谢!
我有一个链接到 youtube 视频的移动网站。在 Android 上,单击此链接会弹出一个对话框,要求用户“使用”他们的浏览器或 Youtube 应用程序“完成操作”。
有没有办法绕过这个屏幕,只在 Youtube 应用程序中播放视频?(例如使用 youtube:// URL。)
谢谢!
您可以这样做:
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);
……
最好的办法
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);
}
尝试使用 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 应用中。