【发布时间】:2019-09-20 23:10:05
【问题描述】:
我基本上想在按下按钮时从我的应用中打开特定的 youtube 视频。如果 youtube 应用安装在用户的设备上,则视频应在 youtube 应用中打开(而不是在浏览器或单独的 web 视图中)。
我为此使用了url_launcher 包,它在android 上运行良好。但是在 iOS 上,即使安装了 youtube 应用程序,它也不会打开,而是打开一个单独的 Web 窗口,其中相应的 youtube url 显示为网页。
我想,我可以像这样覆盖这种行为:
_launchURL() async {
if (Platform.isIOS) {
if (await canLaunch('youtube://www.youtube.com/channel/UCwXdFgeE9KYzlDdR7TG9cMw')) {
await launch('youtube://www.youtube.com/channel/UCwXdFgeE9KYzlDdR7TG9cMw');
} else {
if (await canLaunch('https://www.youtube.com/channel/UCwXdFgeE9KYzlDdR7TG9cMw')) {
await launch('https://www.youtube.com/channel/UCwXdFgeE9KYzlDdR7TG9cMw');
} else {
throw 'Could not launch https://www.youtube.com/channel/UCwXdFgeE9KYzlDdR7TG9cMw';
}
}
} else {
const url = 'https://www.youtube.com/channel/UCwXdFgeE9KYzlDdR7TG9cMw';
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}
}
但它没有用。如果您想知道,我使用以下导入:
import 'dart:io' show Platform;
import 'package:url_launcher/url_launcher.dart';
我很确定,youtube:// URL-Scheme 有效(启动 YouTube 应用程序),因为我在第三方应用程序(Launch Center Pro 和 Pythonista)上对其进行了测试。
我无法测试的最后一件事是,Platform.isIOS 在我的 iPhone 上是否真的是真的。
有没有一种可行的方法,可以从 Flutter 中打开 YouTube 应用?
【问题讨论】: