【发布时间】:2013-07-13 16:47:50
【问题描述】:
当我在 ios 上的 youtube 应用中点击视频上的分享按钮时,我是否可以让我的应用出现?
我知道如何通过将我的文档类型添加到 Info.plist 文件来将我的应用程序添加到打开方式选项中,但是当在 ios 上的 youtube 应用程序中按下共享按钮时,有没有办法做类似的事情?
与此处回答的 android 问题类似。
【问题讨论】:
-
一定会给他发邮件的。
当我在 ios 上的 youtube 应用中点击视频上的分享按钮时,我是否可以让我的应用出现?
我知道如何通过将我的文档类型添加到 Info.plist 文件来将我的应用程序添加到打开方式选项中,但是当在 ios 上的 youtube 应用程序中按下共享按钮时,有没有办法做类似的事情?
与此处回答的 android 问题类似。
【问题讨论】:
不可能..
首先考虑如何将图标或您的应用分享选项放入 YouTube 应用..?我认为您无法在 iOS 中执行此操作。因为 YouTube 提供的共享选项我们无法更改 YouTube API 或 YouTube 应用程序。 如何将图标或您的应用分享选项放入 YouTube 应用?
【讨论】:
和我一起完成 我可以分享在 Youtube App 或 Safari 上打开的视频
从 iOS 8 开始,这通过 App Share Extension 成为可能
如果您使用的是 SLComposeViewController,您将使用
获取 URLself.contentText
如果您创建了自定义 UIViewController
if([itemProvider hasItemConformingToTypeIdentifier:@"public.plain-text"]) {
NSLog(@"itemprovider = %@", itemProvider);
[itemProvider loadItemForTypeIdentifier:@"public.plain-text" options:nil completionHandler: ^(id<NSSecureCoding> item, NSError *error) {
NSString *url;
if([(NSObject*)item isKindOfClass:[NSString class]]) {
url = (NSString*)item;
}
}];
}
else if([itemProvider hasItemConformingToTypeIdentifier:@"public.url"]){
[itemProvider loadItemForTypeIdentifier:@"public.url" options:nil completionHandler: ^(NSUrl *url, NSError *error) {
NSString *url = [url absoluteString];
}];
}
一般而言,您可以通过 making a Share Extension app that accepts links 来实现,如果您只想要 youtube 链接,您可以使用正则表达式过滤即将到来的链接。
当使用 Youtube iOS 应用并通过按“更多”来分享任何视频时,会打开 iOS 原生操作表 我为我的应用做了一个分享扩展,它显示在分享选项中。
选择我的应用后,我会收到视频链接。
我使用了这个正则表达式
"https?:\\/\\/(?:[0-9A-Z-]+\\.)?(?:youtu\\.be\\/|youtube\\.com\\S*[^\\w\\-\\s])([\\w\\-]{11})(?=[^\\w\\-]|$)(?![?=&+%\\w]*(?:['\"][^<>]*>|<\\/a>))[?=&+%\\w]*" 检测到链接是 youtube 链接然后我使用了这个正则表达式
"((?<=(v|V)/)|(?<=be/)|(?<=(\\?|\\&)v=)|(?<=embed/))([\\w-]++)"从链接中检测videoId
【讨论】: