ios关于自带分享SLComposeViewController
来源:互联网 发布:html5制作软件 编辑:程序博客网 时间:2024/06/05 23:03
关于MyActivity 点击打开链接
ShareTool.h
#import <Foundation/Foundation.h>#import <Social/Social.h>#import <UIKit/UIKit.h>typedef NS_ENUM(NSInteger, ShareToolType) { ShareToolTypeOthers,//其他 ShareToolTypeWeChat,//微信 ShareToolTypeQQ,//腾讯QQ ShareToolTypeTencentWeibo,//腾讯微博 ShareToolTypeSinaWeibo,//新浪微博 ShareToolTypeFacebook, ShareToolTypeVimeo, ShareToolTypeTwitter, ShareToolTypeFlickr, ShareToolTypeYouDao,//有道笔记 ShareToolTypeYiXin,//易信};@interface ShareTool : NSObject+ (instancetype)shareTool;-(UIImage *)fullScreenshots;-(void)comesShare:(UIViewController *)vc inView:(UIView *)view;-(void)customizeShare:(UIViewController *)vc ShareToolType:(ShareToolType)type Items:(NSArray *)items;@end
ShareTool.m
#import "ShareTool.h"#import "MyActivity.h"@implementation ShareToolstatic ShareTool *shareTool;+ (instancetype)shareTool{ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ shareTool = [[ShareTool alloc]init]; }); return shareTool;}/** * 全屏截图 * */-(UIImage *)fullScreenshots{ UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow]; UIGraphicsBeginImageContext(screenWindow.frame.size); [screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return viewImage;}/** * 自带分享 * @param vc * @param view ipad分享,需要这个view */-(void)comesShare:(UIViewController *)vc inView:(UIView *)view { NSString *title = @"标题"; NSString *description = @"内容"; UIImage *image = [self fullScreenshots]; NSURL *url = [NSURL URLWithString:@""]; NSArray *activityItems = @[title,description,image,url]; //创建自定义的Activity MyActivity *act1 = [[MyActivity alloc]initWithImage:image atURL:nil atTitle:@"title" atShareContentArray:activityItems]; NSArray *apps = @[act1]; //创建 UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:apps]; //不出现在活动项目 activityVC.excludedActivityTypes = @[ //UIActivityTypePostToFacebook, //UIActivityTypePostToTwitter, //UIActivityTypePostToWeibo,//新浪微博 //UIActivityTypeMessage,//信息 UIActivityTypeMail, //UIActivityTypePrint,//打印 //UIActivityTypeCopyToPasteboard,//拷贝 //UIActivityTypeAssignToContact,//指定联系人 //UIActivityTypeSaveToCameraRoll,//保存到相机胶卷 //UIActivityTypeAddToReadingList,//加入阅读列表 //UIActivityTypePostToFlickr, //UIActivityTypePostToVimeo, //UIActivityTypePostToTencentWeibo,//腾讯微博 //UIActivityTypeAirDrop //UIActivityTypeOpenInIBooks ]; //判断系统版本,初始化点击回调方法 if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0){ UIActivityViewControllerCompletionWithItemsHandler myBlock = ^(NSString *activityType,BOOL completed,NSArray *returnedItems,NSError *activityError) { if (completed) { NSLog(@"completed"); }else { NSLog(@"cancel"); } }; activityVC.completionWithItemsHandler = myBlock; }else{ UIActivityViewControllerCompletionHandler myBlock = ^(NSString *activityType,BOOL completed) { if (completed) { NSLog(@"completed"); }else { NSLog(@"cancel"); } }; activityVC.completionHandler = myBlock; } if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {//判断设备 [vc presentViewController:activityVC animated:YES completion:nil]; }else { UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activityVC]; [popup presentPopoverFromRect:CGRectMake(view.bounds.size.width/2, view.bounds.size.height, 0, 0) inView:view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; } }/** * 自定义分享 * * @param vc * @param type * @param items */-(void)customizeShare:(UIViewController *)vc ShareToolType:(ShareToolType)type Items:(NSArray *)items{ NSString *test = [self serviceTypeWithType:type]; if (![SLComposeViewController isAvailableForServiceType:test]) { NSLog(@"或者没有配置相关的帐号"); return; } // 2.创建分享的控制器 SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:test]; NSLog(@"%@",composeVc); if (!composeVc) { NSLog(@"没有安装"); } for ( id obj in items){ if ([obj isKindOfClass:[UIImage class]]){ [composeVc addImage:(UIImage *)obj]; }else if ([obj isKindOfClass:[NSURL class]]){ [composeVc addURL:(NSURL *)obj]; }else if ([obj isKindOfClass:[NSString class]]) { [composeVc setInitialText:(NSString *)obj]; } } // 3.弹出分享控制器(以Modal形式弹出) [vc presentViewController:composeVc animated:YES completion:nil]; composeVc.completionHandler = ^(SLComposeViewControllerResult result){ if (result == SLComposeViewControllerResultCancelled) { NSLog(@"点击了取消"); } else { NSLog(@"点击了发送"); } };}-(NSString *)serviceTypeWithType:(ShareToolType)type{ NSString * serviceType; if (type!= 0){ switch (type){ case ShareToolTypeWeChat: serviceType = @"com.tencent.xin.sharetimeline"; break; case ShareToolTypeQQ: serviceType = @"com.tencent.mqq.ShareExtension"; break; case ShareToolTypeSinaWeibo: serviceType = SLServiceTypeSinaWeibo;//@"com.apple.share.SinaWeibo.post"; break; case ShareToolTypeTencentWeibo: serviceType = SLServiceTypeTencentWeibo;//@"com.apple.share.TencentWeibo.post"; break; case ShareToolTypeFacebook: serviceType = SLServiceTypeFacebook;//@"com.apple.share.Facebook.post"; break; case ShareToolTypeVimeo: serviceType = @"com.apple.share.Vimeo.post"; break; case ShareToolTypeTwitter: serviceType = SLServiceTypeTwitter;//@"com.apple.share.Twitter.post"; break; case ShareToolTypeFlickr: serviceType = @"com.apple.share.Flickr.post"; break; case ShareToolTypeYouDao: serviceType = @"com.youdao.note.iphone.shareExtension"; break; case ShareToolTypeYiXin: serviceType = @"com.yixin.yixin.YXShareExtension"; break; default: break; } } return serviceType;}@end
使用:
[[ShareTool shareTool] customizeShare:self ShareToolType:ShareToolTypeQQ Items:@[[[ShareTool shareTool] fullScreenshots],@"aaaa"]];
阅读全文
0 0
- ios关于自带分享SLComposeViewController
- ios关于自带分享UIActivityViewController
- iOS自带分享功能
- ios 调用系统自带分享
- IOS系统自带社交分享
- iOS自带的分享功能
- IOS-系统自带社交分享
- iOS - 系统自带的分享功能
- iOS自带的原生的分享
- IOS 自带facebook登录分享
- iOS社交分享(苹果自带)
- ios自带分享及微博分享
- iOS 两种系统分享(配Demo下载)UIActivityViewController 和 SLComposeViewController
- SLComposeViewController
- 系统自带分享
- iOS自带社会化分享框架——Social.framework
- IOS 系统自带的分享功能之 UIActivityViewController
- iOS自带的Social.framework 自带的社交分享SDK
- 贝克尔的人力资本—《可以量化的管…
- 波特的竞争战略—《可以量化的管理…
- 31种企业战略—《可以量化的管理学…
- 聚焦理论—《可以量化的管理学》
- Mysql (Case when then end )函数
- ios关于自带分享SLComposeViewController
- 定位理论的四步骤和八方法—《可以…
- 高德拉特的TOC制约理论—《可以量化…
- 克里斯坦森的破坏性创新—《可以量…
- java生产者消费者同步问题
- 柳比歇夫的时间管理法—《可以量化…
- 德鲁克的时间管理法—《可以量化的…
- 科维的时间管理法—《可以量化的管…
- 图像处理实例--图像去噪