活动列表必威手机官网,与大家共勉

职能图如下:

必威手机官网 1分享一.jpeg必威手机官网 2分享二.jpeg

            NSLog(@"activityType :%@", activityType);

return _title;

当大家点击活动列表中的选项时,系统会作出相应的操作,比如常见的,天涯论坛、微信、QQ的享用:

使用

友盟共享应用文书档案及SDK下载

1.activityItems这里是UIImage集合
UIImage *imageToShare = [UIImage imageNamed:@"111.jpg"]; UIImage *imageToShare1 = [UIImage imageNamed:@"222.jpg"]; UIImage *imageToShare2= [UIImage imageNamed:@"333.jpg"]; NSArray *activityItems = @[imageToShare,imageToShare1,imageToShare2]; NSMutableArray *items = [NSMutableArray array]; NSString *docPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0]; for (int i = 0; i < activityItems.count; i++) { //图片缓存的地址,自己进行替换 NSString *imagePath = [docPath stringByAppendingString:[NSString stringWithFormat:@"/ShareWX%d.jpg",i]]; //把图片写进缓存,一定要先写入本地,不然会分享出错 [UIImageJPEGRepresentation(activityItems[i], .5) writeToFile:imagePath atomically:YES]; //把缓存图片的地址转成NSUrl格式 NSURL *shareobj = [NSURL fileURLWithPath:imagePath]; //这个部分是自定义ActivitySource ShareItem *item = [[ShareItem alloc] initWithData:activityItems[i] andFile:shareobj]; //分享的数组 [items addObject:item]; }

    //共享链接

UIActivityTypePrint,

活动列表

推荐

IFMShare(Swift版)使用轻松、优雅,分界面和作用中度可定制化。支持单行滚动、双行滚动、多行、九宫格、头视图、尾视图等多样体裁,分享成效能够多少个阳台名直接调用Share Extension,也得以运用各平台SDK或许OpenShare自定义分享成效。招待前去issue、pull request、star,代码示举个例子下:

IFMShareView *shareView = [[IFMShareView alloc] initWithItems:@[IFMPlatformNameSms,IFMPlatformNameEmail,IFMPlatformNameQQ,IFMPlatformNameWechat] itemSize:CGSizeMake(80,100) DisplayLine:YES]; //设置共享内容 [shareView addText:@"分享测量检验"]; [shareView addURL:[NSURL URLWithString:@"]; [shareView addImage:image]; [shareView showFromControlle:self];

1
2
3
4
5
6
7
8
9
IFMShareView *shareView = [[IFMShareView alloc] initWithItems:@[IFMPlatformNameSms,IFMPlatformNameEmail,IFMPlatformNameQQ,IFMPlatformNameWechat] itemSize:CGSizeMake(80,100) DisplayLine:YES];
//设置分享内容
[shareView addText:@"分享测试"];
[shareView addURL:[NSURL URLWithString:@"http://www.baidu.com"]];
[shareView addImage:image];
    
[shareView showFromControlle:self];
 
先是种,共享类型为UIImage
UIImage *imageToShare = [UIImage imageNamed:@"111.jpg"];UIImage *imageToShare1 = [UIImage imageNamed:@"222.jpg"];UIImage *imageToShare2= [UIImage imageNamed:@"333.jpg"];NSArray *itemArr = @[imageToShare,imageToShare1,imageToShare2];UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems: itemArr applicationActivities:nil]; //去除特定的分享功能,excludedActivityTypes 去除哪些类型,这里把部分activity都给去除掉,只剩下相册和微信activityVC.excludedActivityTypes = @[UIActivityTypePostToFacebook,UIActivityTypePostToTwitter, UIActivityTypePostToWeibo,UIActivityTypeMessage,UIActivityTypeMail,UIActivityTypePrint,UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll,UIActivityTypeAddToReadingList,UIActivityTypePostToFlickr,UIActivityTypePostToVimeo,UIActivityTypePostToTencentWeibo,UIActivityTypeAirDrop,UIActivityTypeOpenInIBooks];[self presentViewController: activityVC animated:YES completion:nil];

附:图片压缩代码

        // 最先化completionHandler,当post停止以往(无论是done依然cancell)该blog都会被调用

{

2.自定义好了activity后就能够显示了:
    WeiboActivity * weiboActivity = [[WeiboActivity alloc] init];
    weiboActivity.performWeiboActivityBlock = ^{
        [self socialSinaWeibo];
    };
    NSArray * activitys = @[weiboActivity];

    UIActivityViewController *activityViewController =    [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:activitys];
    [self presentViewController:activityViewController animated:YES completion:nil];

自定义分享开关

优缺点

  • 亮点:开辟者能够团结定制共享分界面UI、功用。分享的花色能够自由采纳,除了text、url、image。还会有别的格式多媒体(声音、录制、文件等)可供接纳。
  • 症结:要求配置跳转白名单。

三、分享步骤

        };

//myActivity是自定义的类,承继于UIActivity

- (IBAction)activity:(id)sender {

    // 设置分享内容
    NSString *text = @"分享内容";
    UIImage *image = [UIImage imageNamed:@"1.jpg"];
    NSURL *url = [NSURL URLWithString:@"https://www.baidu.com"];
    NSArray *activityItems = @[text, image, url];

    UIActivityViewController *activityViewController =    [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
    [self presentViewController:activityViewController animated:YES completion:nil];

    // 选中活动列表类型
    [activityViewController setCompletionWithItemsHandler:^(NSString * __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError){
        NSLog(@"act type %@",activityType);
    }];
}

三、友盟等级三方分享平台

微信分享,友盟共享,sharesdk分享等等共享时,都不得不一张图片带文字,做不到多图享受,那时候百度了一下资料就意识了iOS有三个原生控件UIActivityViewController,可以实现多图享受,在多图享受时不能够带文字分享,微信共享扩充限制了。PS:假如享受的时候发现按键只剩越来越多时,那便是您的图形有标题,图片不真实就能够现出这种情状。记录一下代码,与大家共勉。

    NSArray *activityItems = @[textToShare, imageToShare, urlToShare];

@implementation ViewController

3.分享到博客园

想要共享到博客园,获取到点击事件后还亟需越来越拍卖,这里运用系统的果壳网分享接口,使用前要求在系统装置中登入天涯论坛账号

//@import Social
- (void)socialSinaWeibo {
    // 1. 判断设备是否支持指定的分享平台
    // SLComposeViewController:社交分享的视图控制器
    BOOL isAvailable = [SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo];
    if (isAvailable == NO) {
        NSLog(@"应用不支持新浪微博分享");
        return;
    }
    // 2. 创建分享视图控制器,并指定分享平台
    SLComposeViewController *composeVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
    /* 系统支持的分享功能可以分享的平台
     SOCIAL_EXTERN NSString *const SLServiceTypeTwitter
     SOCIAL_EXTERN NSString *const SLServiceTypeFacebook
     SOCIAL_EXTERN NSString *const SLServiceTypeSinaWeibo
     SOCIAL_EXTERN NSString *const SLServiceTypeTencentWeibo
     SOCIAL_EXTERN NSString *const SLServiceTypeLinkedIn
     */    

    // 3. 设置分享内容
    [composeVC setInitialText:@"微博分享"];
    [composeVC addImage:[UIImage imageNamed:@"1.png"]];
    [composeVC addURL:[NSURL URLWithString:@"https://www.baidu.com"]];

    // 4. 进入分享界面
    [self presentViewController:composeVC animated:YES completion:^{
        NSLog(@"进入分享界面");
    }];
    // 5. 监听用户操作
    [composeVC setCompletionHandler:^(SLComposeViewControllerResult result) {
        if (result == SLComposeViewControllerResultCancelled) {
            NSLog(@"取消分享");
        }else if (result == SLComposeViewControllerResultDone) {
            NSLog(@"分享成功");
        }
    }];

}

腾讯网分享

分享结果

如此就能够达成自定义的今日头条分享的效应,可在天涯论坛中查看分享的剧情,显示来自iOS。

Demo: https://github.com/MA806P/ActivityDemo

使用

导入Social.framework

#import

1
#import

//创造分享的调整器 SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo]; if (composeVc == nil){ NSLog(@"未安装软件"); return; } if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) { NSLog(@"软件未陈设登陆新闻"); return; } //增多共享的文字、图片、链接 [composeVc setInitialText:@"要享受的文本内容"]; [composeVc addImage:[UIImage imageNamed:@"choice_highlight"]]; [composeVc addURL:[NSURL URLWithString:@"]; //弹出分享调控器 [self presentViewController:composeVc animated:YES completion:nil]; //监听客户点击了撤消或然发送 composeVc.completionHandler = ^(SLComposeViewControllerResult result){ if (result == SLComposeViewControllerResultCancelled) { NSLog(@"点击了注销"); } else { NSLog(@"点击了发送"); } };

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//创建分享的控制器
SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
 
if (composeVc == nil){
    NSLog(@"未安装软件");
    return;
}
 
if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {
    NSLog(@"软件未配置登录信息");
    return;
}
 
//添加分享的文字、图片、链接
[composeVc setInitialText:@"要分享的文本内容"];
[composeVc addImage:[UIImage imageNamed:@"choice_highlight"]];
[composeVc addURL:[NSURL URLWithString:@"http://www.baidu.com"]];
 
//弹出分享控制器
[self presentViewController:composeVc animated:YES completion:nil];
 
//监听用户点击了取消还是发送
composeVc.completionHandler = ^(SLComposeViewControllerResult result){
    if (result == SLComposeViewControllerResultCancelled) {
        NSLog(@"点击了取消");
    } else {
        NSLog(@"点击了发送");
    }
};  
 

系统只提供了下边二种享受平台:

SLServiceTypeTwitter; SLServiceTypeFacebook; SLServiceTypeSinaWeibo; SLServiceTypeTencentWeibo; SLServiceTypeLinkedIn;

1
2
3
4
5
6
SLServiceTypeTwitter;
SLServiceTypeFacebook;
SLServiceTypeSinaWeibo;
SLServiceTypeTencentWeibo;
SLServiceTypeLinkedIn;
 

实则能够依照id来享受到越多平台,如微信:

NSString *socialType = @"com.tencent.xin.sharetimeline"; SLComposeViewController *composeVC = [SLComposeViewController composeViewControllerForServiceType:socialType];

1
2
3
NSString *socialType = @"com.tencent.xin.sharetimeline";
SLComposeViewController *composeVC = [SLComposeViewController composeViewControllerForServiceType:socialType];
 

能够那样使用的来头是:iOS8今后系统推出的Share Extension,不是系统贯彻了微信分享,而是微信App的Share Extension提供了享受入口。所以这几个不是私有API,能够放心使用,想获得手提式有线话机中装的App的有所Share Extension的办法。只需调用上面一句代码。。

SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];

1
2
SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
 

走访调节台出口,手提式有线电话机内享有可用的Share Extension的bundle Id 都出来了。

2.activityItems那边是地点链接会集
/** 图片数组为url的本机缓存地址 url必须是图片的地址,不是网页的地址*/ NSArray *activityItems = @[ @"http://img3.duitang.com/uploads/item/201604/24/20160424132044_ZzhuX.jpeg", @"http://v1.qzone.cc/avatar/201408/03/23/44/53de58e5da74c247.jpg%21200x200.jpg", @"http://img4.imgtn.bdimg.com/it/u=1483569741,1992390913&fm=214&gp=0.jpg"]; NSMutableArray *items = [NSMutableArray array]; NSString *docPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0]; for (int i = 0; i < activityItems.count; i++) { //地址转码,取出地址 NSString *URL = [activityItems[i] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; //把图片转成NSData类型 NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:URL]]; //写入图片中 UIImage *imagerang = [UIImage imageWithData:data]; //图片缓存的地址,自己进行替换 NSString *imagePath = [docPath stringByAppendingString:[NSString stringWithFormat:@"/ShareWX%d.jpg",i]]; //把图片写进缓存,一定要先写入本地,不然会分享出错 [UIImageJPEGRepresentation(imagerang, .5) writeToFile:imagePath atomically:YES]; //把缓存图片的地址转成NSUrl格式 NSURL *shareobj = [NSURL fileURLWithPath:imagePath]; //这个部分是自定义ActivitySource ShareItem *item = [[ShareItem alloc] initWithData: imagerang andFile:shareobj]; //分享的数组 [items addObject:item]; }

    UIImage *imageToShare = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSU福特ExplorerL UHavalLWithString:@"网络图片地址"]]];

//要享用的原委,加要三个数组里边,初始化UIActivityViewController

苹果从iOS6开头,提供了二个移动列表视图,为分享和操作数据提供了贰个会集的劳务接口,通过UIActivityViewController来支配它的表现和停业,凡是承接UIActivity抽象类的子类对象都得以放在列表中展现出来。如下图所示:

使用:

NSString *textToShare = @"要分享的文件内容"; UIImage *imageToShare = [UIImage imageNamed:@"iosshare.jpg"]; NSURL *urlToShare = [NSURL URLWithString:@"]; NSArray *activityItems = @[textToShare, imageToShare, urlToShare]; UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil]; [self presentViewController:activityVC animated:YES completion:nil];

1
2
3
4
5
6
7
8
9
NSString *textToShare = @"要分享的文本内容";
UIImage *imageToShare = [UIImage imageNamed:@"iosshare.jpg"];
NSURL *urlToShare = [NSURL URLWithString:@"http://www.baidu.com"];
 
NSArray *activityItems = @[textToShare, imageToShare, urlToShare];
UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];
 
[self presentViewController:activityVC animated:YES completion:nil];
 

activityItems是要享用的开始和结果,满含文字、图片、网站。但是要注意的是,不是具有平台都协助那三种内容的享用,举例微信,无法何况享受图片和网站,文字不能够平素往外分享,下图是多少个平台分享概况

必威手机官网 3

各平台分享概略

当弹出视图框的时候,大家开掘下边非常多Logo是大家用不到,我们得以将用不到的Logo去掉,只要设置以下属性:

activityVC.excludedActivityTypes = @[UIActivityTypePostToFacebook,UIActivityTypeAirDrop];

1
2
activityVC.excludedActivityTypes = @[UIActivityTypePostToFacebook,UIActivityTypeAirDrop];
 

设置回调block,能够在享用之后成功或停业后做业务,

UIActivityViewControllerCompletionWithItemsHandler myBlock = ^(UIActivityType __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError) { if (completed){ NSLog(@"completed"); } }; activityVC.completionWithItemsHandler = myBlock;

1
2
3
4
5
6
7
8
9
UIActivityViewControllerCompletionWithItemsHandler myBlock = ^(UIActivityType __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError) {
        
        if (completed){
            NSLog(@"completed");
        }
    };
 
activityVC.completionWithItemsHandler = myBlock;
 

一、帮衬项目

各类activity能够支撑的数据类型

必威手机官网 4支撑的数据类型.png

次第activity能够支撑的数据类型名称

UIKIT_EXTERN NSString *const UIActivityTypePostToFacebook NS_AVAILABLE_IOS; UIKIT_EXTERN NSString *const UIActivityTypePostToTwitter NS_AVAILABLE_IOS; UIKIT_EXTERN NSString *const UIActivityTypePostToWeibo NS_AVAILABLE_IOS; // SinaWeibo UIKIT_EXTERN NSString *const UIActivityTypeMessage NS_AVAILABLE_IOS; UIKIT_EXTERN NSString *const UIActivityTypeMail NS_AVAILABLE_IOS; UIKIT_EXTERN NSString *const UIActivityTypePrint NS_AVAILABLE_IOS; UIKIT_EXTERN NSString *const UIActivityTypeCopyToPasteboard NS_AVAILABLE_IOS; UIKIT_EXTERN NSString *const UIActivityTypeAssignToContact NS_AVAILABLE_IOS; UIKIT_EXTERN NSString *const UIActivityTypeSaveToCameraRoll NS_AVAILABLE_IOS; UIKIT_EXTERN NSString *const UIActivityTypeAddToReadingList NS_AVAILABLE_IOS; UIKIT_EXTERN NSString *const UIActivityTypePostToFlickr NS_AVAILABLE_IOS; UIKIT_EXTERN NSString *const UIActivityTypePostToVimeo NS_AVAILABLE_IOS; UIKIT_EXTERN NSString *const UIActivityTypePostToTencentWeibo NS_AVAILABLE_IOS; UIKIT_EXTERN NSString *const UIActivityTypeAirDrop NS_AVAILABLE_IOS; 

        activityVC.completionWithItemsHandler = myBlock;

return;

1.创建WeiboActivity:
//WeiboActivity.m
#import "WeiboActivity.h"
@implementation WeiboActivity

+ (UIActivityCategory)activityCategory{
    return UIActivityCategoryShare;
}

- (NSString *)activityType{
    return @"com.myz.share.weibo.post";
}
//显示在列表中的图标
- (UIImage *)activityImage{
    return [UIImage imageNamed:@"share_weibo"];
}
//显示在列表中标题
- (NSString *)activityTitle{
    return @"微博分享";
}

- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems{
    return YES;
}

- (void)prepareWithActivityItems:(NSArray *)activityItems{
}

- (void)performActivity {
    if (self.performWeiboActivityBlock) {
        self.performWeiboActivityBlock();
    }
    [self activityDidFinish:YES];
}
@end
  • UIActivity 类型:
+ (UIActivityCategory)activityCategory;
- (NSString *)activityType;

UIActivity 类型又分为“分享”和“操作”两大类,如下图所示:

UIActivityType

  • 列表未出示前决断是或不是出示该�activity,YES显示。这里能够依据将在分享的内容activityItems来剖断是不是在列表中显示该activity。比近年来日头条分享最多九张图,在那边能够判别是或不是超越,从而来鲜明是或不是出示。
- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems;
  • 点击该activity后调用的方法
- (void)performActivity;

一对自定义界面显得

必威手机官网 5 必威手机官网 6

图形展现

3.通过UIActivityViewController实行分享
UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems: items applicationActivities:nil]; //去除特定的分享功能,excludedActivityTypes 去除哪些类型,这里把部分activity都给去除掉,只剩下相册和微信activityVC.excludedActivityTypes = @[UIActivityTypePostToFacebook,UIActivityTypePostToTwitter, UIActivityTypePostToWeibo,UIActivityTypeMessage,UIActivityTypeMail,UIActivityTypePrint,UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll,UIActivityTypeAddToReadingList,UIActivityTypePostToFlickr,UIActivityTypePostToVimeo,UIActivityTypePostToTencentWeibo,UIActivityTypeAirDrop,UIActivityTypeOpenInIBooks];[self presentViewController: activityVC animated:YES completion:nil];

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

_URL = URL;

微信分享

一、系统原生 UIActivityViewController

本条是最基础的文字带图片分享,适用于天涯论坛,不过有一点点activity是不帮助图片文字的享用,比如微信。
NSString *textToShare = @"欢迎关注我!";UIImage *imageToShare = [UIImage imageNamed:@"wang.png"];NSArray *activityItems = @[urlToShare,textToShare,imageToShare];UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:_downImgsArr applicationActivities:nil];[self presentViewController:activityViewController animated:YES completion:nil];

做多图享受的时候,分享的图片大小非常要潜心,无法太大,一旦图片太大,就不能够分享成功,所以有2种缓慢解决方法。分享的类型为UIImage,很有相当的大可能率会现出分享不成事的花样:当为UIImage时,图片一定无法太大,如果应当要用图片直接分享,先把图纸压缩再拓宽分享。第三种享受也是本人推荐的艺术,分享的等级次序为NSUrl:必须要先把图片下载后缓存到地点,把缓存的Url数组举行分享。可是这种艺术索要自定义ActivitySource,否则也许有比一点都不小只怕出现分享不成功的情景。

                NSLog(@"completed");}

{

自定义 UIActivity

若果系统提供的操作不能够满意我们的必要,也得以自定义UIActivity,可获取开关选择事件,手动的展开管理。下边就来手动的贯彻博客园分享操作。

二、系统原生Social Framework

感激以下小说

采取UIActivityController调用ios 系统自带的享受成效,完毕微信发表多图的职能UIActivityViewController 调用微信共享的难题

            else{

}

References

https://github.com/nixzhu/dev-blog/blob/master/2014-04-22-ui-activity-viewcontroller.md
http://www.jianshu.com/p/9de528d96466

优缺点

  • 优点:开荒者能够根据第三方文书档案自个儿定制分享分界面UI、效用。分享的品类能够自由采纳,除了text、url、image。还应该有别的格式多媒体(声音、摄像、文件等)可供选拔。
  • 缺欠:需求去友盟以及各样分享平台注册繁杂的账号、导入臃肿的SDK包。配置跳转白名单。

二、分享注意

UIActivityViewController的功力特别简单,几行代码就能够完结分享。

2. 成立分享视图控制器,伊始化UIActivityViewController

-(void)share:(id)sender

暗许意况下,如未有一点名 UIActivityViewController 的 applicationActivities ,那么系统将会自动物检疫查评定全数可用于所提供内容的劳务,展现在列表中,大家也能够排除特定的 Activity 类型。
activityViewController.excludedActivityTypes = @[UIActivityTypePostToFacebook];

优缺点

  • 优点:使用简易、不用登记繁杂的享用平台账号、不用导入臃肿的SDK包
  • 症结:UI可定制性差,只好选拔系统提供的一定样式,长相如下。分享的花色受限,只可以分享text、url、image。

必威手机官网 7

UIActivityViewController分享分界面

4.那几个是自定义UIActivityItemSource对象

ShareItem.h

#import <Foundation/Foundation.h>@interface ShareItem : NSObject<UIActivityItemSource>-(instancetype)initWithData:(UIImage *)img andFile:file;@property (nonatomic, strong) UIImage *img;@property (nonatomic, strong) NSURL *path;@end

ShareItem.m

#import "ShareItem.h"@implementation ShareItem-(instancetype)initWithData:(UIImage *)img andFile:file{ self = [super init]; if  { _img = img; _path = file; } return self;}-(instancetype)init{ //不期望这种初始化方式,所以返回nil了。 return nil;}#pragma mark - UIActivityItemSource-activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController{ return _img;}-activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType{ return _path;}-(NSString*)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType{ // 这里对我这分享图好像没啥用.... 是的 没啥用.... return @"";}@end

代码下载:

/* ActivityItems  在实践activity中用到的数目对象数组。数组中的对象类型是可变的,并借助于应用程序管理的数额。比如,数据大概是由一个或许多个字符串/图像对象,代表了脚下选中的剧情。Activities  是三个UIActivity对象的数组,代表了应用程序援救的自定义服务。这些参数能够是nil。*/

@property (nonatomic,strong) UIImage *shareImage;

因而上边代码,就能够调出视图:

下一篇内容:UIActivityViewController自定义Activity、OpenShare配置跳转白名单


参谋小说:

《使用系统自带的UIActivityViewController和UIActivity进行内容分享》
新手指南:使用 Social Framework 以及 UIActivityViewController
iOS通过UIActivityViewController完毕原面生享作用
UIActivityViewController 和 SLComposeViewController
程序内享用到微信

1 赞 2 收藏 评论

其次种,分享类型为NSUrl

把图纸写进缓存,把本机图片地址写进数组中

       利用UIActivityViewController完成系统原生疏享文本、图片、链接,不须要三方SDK,补助自定义分享,能够分享到微博、微信、QQ、新闻、邮件、备忘录、通信录等等。

return _title;

![腾讯网分享]

四、OpenShare

5.在显示view controller时,必需凭仗当前的配备等级次序,使用合适的主意。在GALAXY Tab上,必需透过popover来表现view controller。在索爱和iPodtouch上,必需以模态的秘诀呈现。

NSArray *apps = @[act1,act2];

QQ分享

GIF展示

必威手机官网 8

动图体现

6.在意:共享成效(推特, Facebook, 博客园天涯论坛, Tencent和讯...)必要你在手提式有线电话机上安装基本绑定了登陆账户, 手艺健康展现。

}else if([_title isEqualToString:@"share Sina"]){

原稿出处: 檀羽冲   

NSString *textToShare = @"要享用的文字";

UIButton *bt = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];

总结

那八种享受方案,各有利害,未有最佳的享用方案,独有最契合你App须要的方案。

假如你的App分界面供给定制化,分享类型须要援助多媒体(声音、摄像、文件等),共享平台只限于微信、QQ、今日头条、人人、支付宝,使用openshare。假诺须求补助的阳台很多,使用友盟分享。

只要享受的类型只限于text、image、url,对分界面供给不高,系统原生的UIActivityViewController就能够,使用UIActivityViewController。倘诺分界面需求定制化,使用Social Framework。

方案 UI 分享类型 分享平台
UIActivityViewController 要求不高 text、image、url 多种平台
Social Framework 要求自定义 text、image、url 多种平台
友盟等第三方分享平台 要求自定义 支持多媒体(声音、视频、文件等) 多种平台
OpenShare 要求自定义 支持多媒体(声音、视频、文件等 微信/QQ/微博/人人/支付宝

除却第一种方案UIActivityViewController不供给本身绘制分界面以外,其余方案均要团结绘制分享弹出美食指南,针对上述难题,作者写了二个分界面和功用高度可定制化的车轱辘IFMShare(Swift版)供大家使用。

    //分享使用默认本地图片

if([_title isEqualToString:@"share Renren"]){

使用

兑现原理介绍
github代码和demo地址

    //UIImage *imageToShare = [UIImage imageNamed:@"shareImage"];

}

优缺点

  • 亮点:使用简单、不用登记繁杂的享受平台账号、不用导入臃肿的SDK包。UI能够协和绘制,满足了累累本性化的供给。
  • 瑕玷:分享分界面包车型大巴UI须要开荒者自个儿绘制,增加了工作量。共享的门类受限,只好分享text、url、image。

    UIViewController * rootVc = [UIApplication sharedApplication].keyWindow.rootViewController;

}

                NSLog(@"cancel");}

-(void)performActivity

    [rootVc presentViewController:activityVC animated:TRUE completion:nil];

+(UIActivityCategory)activityCategory

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

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

4.早先化点击回调方法

activityVC.excludedActivityTypes = @[UIActivityTypePostToTwitter,

    //分享使用网络图片   网络图片必须求小否则恐怕加载不出来

//title是当前项目,shareImage是分享Logo,UENVISIONL是要享受的地方,getShareArray保存客商要享用的剧情

    NSURL *urlToShare = [NSUCRUISERL U奥德赛LWithString:@"要享受的链接"];

}

本文由必威发布于必威-编程,转载请注明出处:活动列表必威手机官网,与大家共勉

相关阅读