【IOS】利用UIActivityViewController实现分享视频,图片,链接

直接上代码:

    NSURL *videoURL = ....

    NSArray *activityItems = @[videoURL];

    UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];
    
    //ipad兼容
    UIPopoverPresentationController *popover = activityVC.popoverPresentationController;

    if (popover) {
        popover.sourceView =....;
        popover.permittedArrowDirections = UIPopoverArrowDirectionUp;
    }
    
    [self presentViewController:activityVC animated:YES completion:nil];

是不是非常简单?

附录:
分享本地图片:

 NSData *date = [NSData dataWithContentsOfFile:item.imageUrl.absoluteString];
    NSArray *activityItems = @[date];
    UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];
    [self presentViewController:activityVC animated:YES completion:nil];

分享链接:

    NSString *textToShare = @"文本内容";
    UIImage *imageToShare = [UIImage imageNamed:@"imagename"];
    NSURL *urlToShare = [NSURL URLWithString:@"http:baidu.com"];
    NSArray *activityItems = @[textToShare, imageToShare, urlToShare];

    UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems
                                                                            applicationActivities:nil];
    //不出现在活动项目
    activityVC.excludedActivityTypes = @[UIActivityTypePrint, UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll,UIActivityTypeAddToReadingList];
    
    //给activityVC的属性completionHandler写一个block。
    //用以UIActivityViewController执行结束后,被调用,做一些后续处理。
    UIActivityViewControllerCompletionWithItemsHandler myBlock = ^(UIActivityType activityType, BOOL completed, NSArray * returnedItems, NSError * activityError)
    {
        if (completed)
        {
            LyLog(@"completed");
        }
        else
        {
            LyLog(@"cancel");
        }
    };
    
    // 初始化completionHandler,当post结束之后(无论是done还是cancell)该blog都会被调用
    activityVC.completionWithItemsHandler = myBlock;
    
    UIViewController * rootVc = [UIApplication sharedApplication].keyWindow.rootViewController;
    [rootVc presentViewController:activityVC animated:TRUE completion:nil];
    

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,227评论 25 709
  • 所有文章已搬迁到个人站点:me.harley-xk.studio,欢迎访问留言 自从 Xcode ghost 事件...
    群星陨落阅读 5,791评论 6 7
  • 全世界谁倾听你林宥嘉-全世界谁倾听你 我们都未曾想过,说过永远要在一起的人,最后会离开。 陈末没有想过小容会离开,...
    喵喵de小来福阅读 3,663评论 0 8
  • 文/米兰 世上没有一件事,比得过父母的爱。 也因此父母需要承受的更多更多,那些理所应当,那些必须的义务责任,那些外...
    米兰S阅读 1,823评论 0 0
  • 昨晚2点18分,路过了少君家,听了听海风,看了看漆绿的海,2点22分到达约好地点,一个电话叫醒了睡梦中的创雄,开车...
    文艺小五宅阅读 1,634评论 0 0

友情链接更多精彩内容