您的位置:首页 > 移动开发 > IOS开发

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

2017-08-29 13:58 162 查看
在哪儿实现直接调用这个方法直接上代码#pragma mark - share action- (void)shareAction:(NSString *)musicPath{    NSString *dicript =@"Give you a song";    NSURL *url = [NSURLfileURLWithPath:musicPath];    NSArray * activityItems = @[dicript,url];    UIActivityViewController * activityVC = [[UIActivityViewControlleralloc] initWithActivityItems:activityItemsapplicationActivities:nil];        UIActivityViewControllerCompletionWithItemsHandler myBlock = ^(UIActivityType__nullable activityType, BOOL completed,NSArray * __nullable returnedItems,NSError * __nullable activityError){                if (completed) {            //分享完成            [ToastUtilsshowHud:@"分享成功"];//此tost为自己封装的所以这句不用复制                    }else{                        //分享失败            [ToastUtilsshowHud:@"分享失败,请重试"];//此tost为自己封装的所以这句不用复制        }                [activityVC dismissViewControllerAnimated:YEScompletion:nil];    };        activityVC.completionWithItemsHandler = myBlock;        activityVC.excludedActivityTypes = @[UIActivityTypePostToFacebook,                                         UIActivityTypePostToTwitter,                                         UIActivityTypePostToWeibo,                                         UIActivityTypeMessage,                                         UIActivityTypeMail,                                         UIActivityTypePrint,                                         UIActivityTypeCopyToPasteboard,                                         UIActivityTypeAssignToContact,                                         UIActivityTypeSaveToCameraRoll,                                         UIActivityTypeAddToReadingList,                                         UIActivityTypePostToFlickr,                                         UIActivityTypePostToVimeo,                                         UIActivityTypePostToTencentWeibo,                                         UIActivityTypeAirDrop,                                         UIActivityTypeOpenInIBooks];        [selfpresentViewController:activityVCanimated:YEScompletion: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]];}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: