在哪儿实现直接调用这个方法
直接上代码
#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是本地视频沙盒路径
- (void)shareVideo {
NSURL *urlToShare = [NSURL fileURLWithPath:self.moviePath]; [self shareWithActivityItems: @[textToShare,urlToShare]];}NSString *textToShare = @“接你的url”;
3. GIF+文字
这个需求几乎没有不,试了一下打开却是静图。因为: 图片太大了。合成GIF的时候,没有对图片进行处理,图片过大导致分享出去打开是静图而在PC端可以正常打开。
- (void)shareGIF
{
NSString *textToShare = @“接你的url”;
NSURL *urlToShare = [NSURL fileURLWithPath:self.gifPath];
[self shareWithActivityItems: @[textToShare,urlToShare]];
}