iOS中调用系统的分享

2018-05-11  本文已影响0人  陈藩

ios中系统的UIActivityViewController类给我们提供了很好的实现分享的功能。

UIActivityViewController 的初始换方法

其中activityItems 是需要分享的内容的数组,可以是图片,可以是文字,也可以是Url。
applicationActivities 参数是需要显示的分享的列表数组 ,可以设置为nil
其中系统提供的可以分享的对象有如下这些:

UIActivityTypePostToTwitter
UIActivityTypePostToWeibo
UIActivityTypeMessage
UIActivityTypeMail
UIActivityTypePrint
UIActivityTypeCopyToPasteboard
UIActivityTypeAssignToContact
UIActivityTypeSaveToCameraRoll
UIActivityTypeAddToReadingList
UIActivityTypePostToFlickr
UIActivityTypePostToVimeo
UIActivityTypePostToTencentWeibo
UIActivityTypeAirDrop
UIActivityTypeOpenInIBooks
UIActivityTypeMarkupAsPDF

UIActivityViewController 的属性 excludedActivityTypes 是屏蔽要显示的列表,即分享是不想让他显示出来的列表。
UIActivityViewController 的属性 UIActivityViewControllerCompletionWithItemsHandler 是分享完成的回调。

eg:

UIImage *image = [UIImage imageNamed:@"Message_Push"];
NSString *titel = @"你好";
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:@[image,titel,url] applicationActivities:nil];
controller.completionWithItemsHandler = ^(UIActivityType  _Nullable activityType, BOOL completed, NSArray * _Nullable returnedItems, NSError * _Nullable activityError) {
   
};
NSArray *regectArr = @[UIActivityTypePostToWeibo,UIActivityTypePostToFacebook];
controller.excludedActivityTypes = regectArr;
[self presentViewController:controller animated:YES completion:nil];

测试时发现,当分享到qq个人时,可以分享图片和文字,但是当图片和url一起时,图片不显示,但是分享到微信时,则可以全部显示。 分享到部分应用时,需要在infor文件中配置隐私设置,否则会崩溃。

上一篇下一篇

猜你喜欢

热点阅读