2015-09-05 4 views
1

Возможно ли встроить видео с помощью HTML5 в UIActivityViewController. Код, который я использую ниже, генерирует пустой почтовый ящик при совместном использовании по электронной почте.Вставить видео HTML5 UIActivityViewController IOS

NSString * shareMessage = @"<html><head><meta name=\"viewport\" content=\"width=device-width\"></head><body><video controls=\"\" autoplay=\"\" name=\"media\"><source src=\"https://myurl.com/video_test.mp4\" type=\"video/mp4\"></video></body></html>";  

NSArray * activityItems = [NSArray arrayWithObjects: 
          shareMessage, 
          nil]; 

UIActivityViewController *activityViewController = [[UIActivityViewController alloc] 
                initWithActivityItems:activityItems 
                applicationActivities:nil]; 

[self presentViewController:activityViewController animated:YES completion:nil]; 

Причина, почему я хотел бы использовать HTML и поток видео, а не внедряя видео локально из файла, так что он может играть встроенные в теле сообщения электронной почты, а не выступать в качестве вложенного файла.

Любые идеи, если то, что я пытаюсь сделать, возможно? Невозможно найти примеры ...

ответ

0

Да, конечно, это возможно, хотя вам нужно создать новый класс для UIActivityViewController. У меня было same issue давным-давно, и этот link был ключом к моему решению.

Я использовал новый класс и определил все разные сообщения для UIActivityViewController.

1. Создание UIActivityItemProvider класса

.h

#import <UIKit/UIKit.h> 


@interface CustomActivityClass : UIActivityItemProvider <UIActivityItemSource> 
@end 

.m

#import "CustomActivityClass.h" 

@implementation CustomActivityClass 


- (id) activityViewController:(UIActivityViewController *)activityViewController 
      itemForActivityType:(NSString *)activityType 
{ 
    if ([activityType isEqualToString:UIActivityTypePostToTwitter]) 
     return @"text"; 
    if ([activityType isEqualToString:UIActivityTypePostToFacebook]) 
     return @"text"; 
    if ([activityType isEqualToString:UIActivityTypeMessage]) 
     return @"text"; 
    if ([activityType isEqualToString:UIActivityTypeMail]) 
     return @"<html><body> \n" 
     "<h1 style=\"font:15px Helvetica,Arial,sans-serif\"> \n" 
     "text \n" 
     "<b> \n" 
     "bold text \n" 
     "</b> \n" 
     "</h1> \n" 
     "<p style=\"font:13px Helvetica,Arial,sans-serif\"> \n" 
     "some text\n" 
     "</p> \n" 
     "</body></html>"; 

    NSLog(@"%s",__FUNCTION__); 
    NSLog(@"%@", activityType); 
    return [super activityViewController:activityViewController itemForActivityType:activityType]; 

    return nil; 
} 
- (id) activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController { return @""; } 



@end 

То есть буквально все, что вам нужно. Просто замените мой html-пример вашим html-видео, и он должен работать нормально.

Вот дополнительный код для инициализации контроллера с помощью кнопки/действия:

CustomActivityClass *ActivityProvider = [[CustomActivityClass alloc] init]; 

     NSArray *items = [NSArray arrayWithObjects: ActivityProvider,nil]; 


     UIActivityViewController *ActivityView = 
     [[UIActivityViewController alloc] initWithActivityItems:items 
              applicationActivities:nil]; 

Имейте хороший и не стесняйтесь комментировать вопросы!

Приветствия

+0

Этот пример прекрасно работает, только то, что он не показывает, как поставить видео с помощью HTML в теле сообщения электронной почты. Было бы здорово, если бы вы могли показать этот html, работающий для локального видеофайла или видеофайла, размещенного на сервере, таком как этот: http://techslides.com/sample-webm-ogg-and-mp4-video-files- for-html5 – mikemeli

+0

@mikemeli проверить это сообщение. Это может помочь вам! http://stackoverflow.com/questions/29926248/html5-video-not-playing-in-native-ios-email-client-2015 – MasterRazer

0

Ну <embed src="..."> будет вставлять видео и ваш HTML заканчивается менее загроможден, и

<video width="320" height="240" controls> <source src="movie.mp4" type="video/mp4"> <source src="movie.ogg" type="video/ogg"> Your browser does not support the video tag. </video>

тег является лучшим выбором, как вы просто мирится видео. Теперь, конечно, когда вы связываете его с файлом.

http://www.w3schools.com/tags/tag_video.asp

+0

Я пробовал тег видео, но написанное письмо говорит: «Ваш браузер не поддерживает видео тег ". Есть идеи? – mikemeli

+0

использование google chrome ... get rekt kid – BuildNC

Смежные вопросы