要在youtube应用上发布视频,我使用的是以下代码。
NSURL *instagramURL = [NSURL URLWithString:@"youtube://foo"];
if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
NSLog(@"opening youtube app...");
NSString *stringURL = @"http://www.youtube.com/watch?v=H9VdapQyWfg";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
} else {
// open in UIWebView in WebViewViewController
WebViewViewController *secondView = [self.storyboard instantiateViewControllerWithIdentifier:@"webinterface"];
secondView.headerLabel = @"YouTube";
secondView.webPath = @"http://www.youtube.com/watch?v=H9VdapQyWfg";
[self.navigationController pushViewController:secondView animated:YES];
}
现在,客户改变了主意并要求将频道放入iPhone应用程序。
为了进行测试,我使用了链接http://www.youtube.com/user/richarddawkinsdotnet
但是,当我使用此链接, 而不是youtube应用时,它始终在SAFARI中打开。 :(
关于如何在提供链接的YouTube应用中打开频道的任何想法/建议?
答案 0 :(得分:12)
您的代码出错了,因为虽然您正在检查是否可以或多或少地正确打开youTube网址,但您只需打开一个网址,该网址将始终在Safari中打开。
这是我刚才使用的代码,这对我有用。如果您想要回退到使用webviewcontroller,则可能需要修改else语句,因为如果未安装youtube应用程序,这将打开Safari。
NSString *channelName = @"TheNameOfTheChannel";
NSURL *linkToAppURL = [NSURL URLWithString:[NSString stringWithFormat:@"youtube://user/%@",channelName]];
NSURL *linkToWebURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.youtube.com/user/%@",channelName]];
if ([[UIApplication sharedApplication] canOpenURL:linkToAppURL]) {
// Can open the youtube app URL so launch the youTube app with this URL
[[UIApplication sharedApplication] openURL:linkToAppURL];
}
else{
// Can't open the youtube app URL so launch Safari instead
[[UIApplication sharedApplication] openURL:linkToWebURL];
}
答案 1 :(得分:1)
答案相同,但更短:
if (![[UIApplication sharedApplication] openURL: [NSURL URLWithString: @"youtube://user/%channelName%"]]) {
NSURL *webURL = [NSURL URLWithString:@"http://www.youtube.com/user/%channelName%"];
[[UIApplication sharedApplication] openURL: webURL];
}
和twitter:
if (![[UIApplication sharedApplication] openURL: [NSURL URLWithString: @"twitter://user?screen_name=%channelName%"]]) {
NSURL *webURL = [NSURL URLWithString:@"http://twitter.com/%channelName%"];
[[UIApplication sharedApplication] openURL: webURL];
}
这是一个更详尽的应用列表:
答案 2 :(得分:0)
youtube://user/<channel-id>
停止在iOS 9
工作,所以我研究并发现这在iOS 9中运行良好
youtube://www.youtube.com/channel/<channel-id>