SFSafariViewController 在安装 YouTube 时请求打开 YouTube 应用程序
SFSafariViewController requesting to Open YouTube App when YouTube is installed
我有一个仅 iOS 9 的应用程序,我正在使用 UITableViewController
和一家公司的视频列表进行开发。一些视频托管在 YouTube 上。在didSelectRowAtIndexPath
中,我通过以下方式实现SFSafariViewController
的使用:
SFSafariViewController *safariVC = [[SFSafariViewController alloc] initWithURL:[NSURL URLWithString:@"https://www.youtube.com/watch?v=YQHsXMglC9A"]entersReaderIfAvailable:NO];
safariVC.delegate = self;
[self presentViewController:safariVC animated:YES completion:nil];
请注意,link 中的视频 不是 我在我的应用程序中使用的视频 - 这只是一个示例。
当我在我的设备上没有安装 YouTube.app 的情况下单击它时,它会在 SFSafariViewController
中打开。如果我安装了 YouTube.app,它会提示我打开其中的 link:
我明白为什么会这样,因为 iOS9 中的工作,但我该如何预防呢?我的用户必须去 YouTube 观看视频然后返回到应用程序(即使是通过顶部的背面 link),这会很烦人。
如何防止在应用程序中发生这种情况,比如在应用程序中使用 SFSafariViewController 而不是 YouTube 应用程序?
更新
这种行为不会发生在 Twitter 或 Facebook 本机应用程序上,所以问题是,这是 YouTube 本机应用程序问题(我无能为力)还是我有办法防止开幕?使用 SFSafariViewController,Apple 的目标是让它变得更容易;必须有一种方法可以防止应用程序在本机应用程序中提示和加载。
如有任何相关指导,我们将不胜感激。
我没有看到代表这样做。我想这是本机行为,正是您使用 SFSafariViewController
得到的结果。您可以直接使用 WebView 重新创建 'light version'
我有一个仅 iOS 9 的应用程序,我正在使用 UITableViewController
和一家公司的视频列表进行开发。一些视频托管在 YouTube 上。在didSelectRowAtIndexPath
中,我通过以下方式实现SFSafariViewController
的使用:
SFSafariViewController *safariVC = [[SFSafariViewController alloc] initWithURL:[NSURL URLWithString:@"https://www.youtube.com/watch?v=YQHsXMglC9A"]entersReaderIfAvailable:NO];
safariVC.delegate = self;
[self presentViewController:safariVC animated:YES completion:nil];
请注意,link 中的视频 不是 我在我的应用程序中使用的视频 - 这只是一个示例。
当我在我的设备上没有安装 YouTube.app 的情况下单击它时,它会在 SFSafariViewController
中打开。如果我安装了 YouTube.app,它会提示我打开其中的 link:
我明白为什么会这样,因为 iOS9 中的工作,但我该如何预防呢?我的用户必须去 YouTube 观看视频然后返回到应用程序(即使是通过顶部的背面 link),这会很烦人。
如何防止在应用程序中发生这种情况,比如在应用程序中使用 SFSafariViewController 而不是 YouTube 应用程序?
更新
这种行为不会发生在 Twitter 或 Facebook 本机应用程序上,所以问题是,这是 YouTube 本机应用程序问题(我无能为力)还是我有办法防止开幕?使用 SFSafariViewController,Apple 的目标是让它变得更容易;必须有一种方法可以防止应用程序在本机应用程序中提示和加载。
如有任何相关指导,我们将不胜感激。
我没有看到代表这样做。我想这是本机行为,正是您使用 SFSafariViewController
得到的结果。您可以直接使用 WebView 重新创建 'light version'