3

无论如何,当我在 ios 上的 youtube 应用程序中单击视频上的共享按钮时,我可以让我的应用程序出现吗?

我知道如何通过将我的文档类型添加到 Info.plist 文件来将我的应用程序添加到打开选项中,但是当在 ios 上的 youtube 应用程序中按下共享按钮时,有没有办法做类似的事情?

类似于此处回答的android问题。

android youtube:将 youtube 视频分享到我的应用程序?

4

2 回答 2

7

和我一起完成,我可以分享在 Youtube App 或 Safari 上打开的视频

从 iOS 8 开始,这通过 App Share Extension 成为可能

如果您使用的是 SLComposeViewController,您将使用

self.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];


            }];
}

您可以通过制作一个一般接受链接的共享扩展应用程序来实现这一点,如果您只想要 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

参考: ios8-share-extension-swift

在原始 iOS 应用程序和应用程序扩展之间共享代码

于 2016-06-26T09:14:13.573 回答
2

不可能的..

首先考虑如何将图标或您的应用程序共享选项放入 YouTube 应用程序..?我认为您不能在iOS中执行此操作..因为共享选项由 YouTube 提供,我们无法更改 YouTube API 或 YouTube 应用程序。如何将图标或您的应用分享选项放入 YouTube 应用?

于 2013-07-15T19:15:54.990 回答