3

iOSのYouTubeアプリでビデオの共有ボタンをクリックすると、アプリが表示されるようにする方法はありますか?

ドキュメントタイプをInfo.plistファイルに追加することで、アプリをオープンインオプションに追加する方法を知っていますが、iOSのYouTubeアプリで共有ボタンが押されたときに同様のことを行う方法はありますか?

ここで答えたアンドロイドの質問に似ています。

android youtube: youtube ビデオを私のアプリに共有しますか?

4

2 に答える 2

7

Youtube アプリや Safari で開いた動画を共有できます

iOS 8 以降、これは App Share Extension で可能になりました

SLComposeViewController を使用している場合は、次を使用して URL を取得します。

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 に答える