和我一起做,我可以分享在Youtube App或Safari上打开的视频
从iOS 8开始,这可以通过App Share Extension实现
如果您正在使用SLComposeViewController,您将获得使用的URL
self.contentText
Run Code Online (Sandbox Code Playgroud)
如果您创建了自定义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];
}];
}
Run Code Online (Sandbox Code Playgroud)
您可以通过创建一般接受链接的共享扩展应用程序来实现这一点.如果您只想要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
| 归档时间: |
|
| 查看次数: |
2487 次 |
| 最近记录: |