ios开发苹果内置分享(原生分享)

在哪儿实现直接调用这个方法

直接上代码

#pragma mark - share action


- (void)shareAction:(NSString *)musicPath{

    NSString *dicript = @"Give you a song";

    NSURL *url = [NSURL fileURLWithPath:musicPath];

    NSArray * activityItems = @[dicript,url];

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

    

    UIActivityViewControllerCompletionWithItemsHandler myBlock = ^(UIActivityType __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError){

        

        if (completed) {

            //分享完成

            [ToastUtils showHud:@"分享成功"];//此tost为自己封装的所以这句不用复制

            

        }else{

            

            //分享失败

            [ToastUtils showHud:@"分享失败,请重试"];//此tost为自己封装的所以这句不用复制

        }

        

        [activityVC dismissViewControllerAnimated:YES completion:nil];

    };

    

    activityVC.completionWithItemsHandler = myBlock;

    

    activityVC.excludedActivityTypes = @[UIActivityTypePostToFacebook,

                                         UIActivityTypePostToTwitter,

                                         UIActivityTypePostToWeibo,

                                         UIActivityTypeMessage,

                                         UIActivityTypeMail,

                                         UIActivityTypePrint,

                                         UIActivityTypeCopyToPasteboard,

                                         UIActivityTypeAssignToContact,

                                         UIActivityTypeSaveToCameraRoll,

                                         UIActivityTypeAddToReadingList,

                                         UIActivityTypePostToFlickr,

                                         UIActivityTypePostToVimeo,

                                         UIActivityTypePostToTencentWeibo,

                                         UIActivityTypeAirDrop,

                                         UIActivityTypeOpenInIBooks];

    

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

}


以上是我的需求将自己本地的音频分享给其他平台

当然到哪个平台是可指定的

你认真看会发现 activityVC.excludedActivityTypes属性的数组中添加的全是将要使用到的,

例如UIActivityTypePostToTencentWeibo(微博tencen代表腾讯)

UIActivityTypePostToFacebook(facebook)

由于好朋友们可能会涉及到其他的分享

下面我为大家例举几种常用的形式

1. 图片+文字
- (void)shareImage
{
    NSString *textToShare = @“接你的url”;
 // load你要分享的图片,通过bundle或者沙盒,或者name
    UIImage *imageToShare = [UIImage xxxx];
    [self shareWithActivityItems: @[textToShare, imageToShare]];
}
2. 视频+文字或者音频+文字(也就是我的项目需求)

此处分享的是本地视频,self.moviePath是本地视频沙盒路径

视频分享弹窗.png
- (void)shareVideo
{
    

    NSString *textToShare = @“接你的url”;
NSURL *urlToShare = [NSURL fileURLWithPath:self.moviePath]; [self shareWithActivityItems: @[textToShare,urlToShare]];}
3. GIF+文字

这个需求几乎没有不,试了一下打开却是静图。因为: 图片太大了。合成GIF的时候,没有对图片进行处理,图片过大导致分享出去打开是静图而在PC端可以正常打开。

- (void)shareGIF
{
    NSString *textToShare = @“接你的url”;
    NSURL *urlToShare = [NSURL fileURLWithPath:self.gifPath];
    [self shareWithActivityItems: @[textToShare,urlToShare]];
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值