IOS6开始, 系统提供了UIActivityViewController, 对图片,文字,url进行相关的操作. 对于缺乏UI设计师的开发来说, 使用它进行轻量级的分享是很好的选择.

最大的缺点是自定义的分享服务,图标都是灰色的.

使用微信进行分享的例子:

1 定义WeiXinActivity类.

@interface WeiXinActivity:UIActivity
{
UIImage* _imageForShare;
NSString* _messageForShare;
} @end const NSString* WeiXinActivityType = @"WeiXinActivity";
@implementation WeiXinActivity
- (NSString *)activityType
{
return [NSString stringWithString:WeiXinActivityType];
} - (NSString *)activityTitle
{
return @"微信";
} - (UIImage *)activityImage
{
return [UIImage imageNamed:@"SA_Weixin.png"];
} - (BOOL)canPerformWithActivityItems:(NSArray *)activityItems
{
BOOL bins = [WXApi isWXAppInstalled]&& [WXApi isWXAppSupportApi];
if (!bins) {
return NO;
} for (id item in activityItems) {
if ([item isKindOfClass:[UIImage class]]) {
return YES;
}
}
return NO;
} - (void)prepareWithActivityItems:(NSArray *)activityItems
{
for (id item in activityItems) {
if ([item isKindOfClass:[UIImage class]]) {
_imageForShare =item; }
else if([item isKindOfClass:[NSString class]]) {
_messageForShare =item; } }
} - (UIViewController *)activityViewController
{
return nil;
} - (void)performActivity
{
WXMediaMessage *message = [WXMediaMessage message]; UIImage* thumb = [ImageHelper image:_imageForShare fitInSize:CGSizeMake(, )];
[message setThumbImage:thumb];
WXImageObject *ext = [WXImageObject object]; ext.imageData = UIImageJPEGRepresentation(_imageForShare, 0.9); message.mediaObject = ext; SendMessageToWXReq* req = [[SendMessageToWXReq alloc] init];
req.bText = NO;
req.message = message; BOOL b= [WXApi sendReq:req]; [self activityDidFinish:b];
} @end

    

2 使用WeixinActivity进行分享:

@implementation ShareWarper
+(NSArray*)additionShartTargets
{
WeiXinActivity* weiXin = [[WeiXinActivity alloc] init];
//TencentOpenActivity* tencent = [[TencentOpenActivity alloc] init]; return @[weiXin];
} +(void)share:(NSArray*)items from:(UIViewController<ShareWarperDelegate>*)vc
{
UIActivityViewController *activityVC =
[[UIActivityViewController alloc] initWithActivityItems:items
applicationActivities:[ShareWarper additionShartTargets]];
activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact,UIActivityTypeMessage,UIActivityTypePrint,UIActivityTypeCopyToPasteboard]; __weak UIViewController<ShareWarperDelegate>* weakRef = vc; activityVC.completionHandler = ^(NSString *activityType, BOOL completed){
[weakRef shareTo:activityType completed:completed];
}; [vc presentViewController:activityVC animated:YES completion:nil];
} @end

使用subclass UIActivity的方案来分享图片的更多相关文章

  1. 微信在IOS7下无法分享图片

    家里老大的iphone5在WWDC后第一时间升级了IOS7. 整体的UI风格和功能都很喜欢, 偶尔的crash还能接受. 但是最常用的软件之一微信,在IOS7下无法分享图片这点一直让她耿耿于怀. 从用 ...

  2. Android微信分享图片大于32k进行压缩

    微信分享视频的时候,需要传一个图片数组,大小不能大于32k. 解决方案:使用Bitmap自带的compress方法解决了这个问题. 源码如下: <span style="font-si ...

  3. Android 高清加载巨图方案 拒绝压缩图片

    Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/49300989: 本文出自:[张 ...

  4. iOS 学习 - 13.微信分享链接、QQ 分享图片

    准备工作---原文来自这个 首先要在微信开放平台申请 AppID 和 QQ ID(我第一天晚上申请的,第二天中午就通过了),接着导入 SDK,也就是3个 .h 和一个 .a 文件,详情见这里 如果你是 ...

  5. 微信朋友圈如何同时分享(图片+文字) Android版

    以下是:微信朋友圈SDK 分享图片的代码,但只能分享图片,不能分享文字,如何才能图片和文字同时分享?求各位大神指教! public class MainActivity extends Activit ...

  6. 使用pillow生成分享图片

    重复性的工作一定要交给计算机去做! 有时候要为公司做一张宣传用的分享图片,很简单交给设计通过ps.AI做好就行了,但是如果一个网站要为每个用户生成一张专属的分享图片,如果让设计师一张一张的去做,哪设计 ...

  7. Android实现分享图片和文字的功能

    为了应用的推广,我们经常看到点击分享按钮会出现,比如微博微信等应用的分享二等列表,这是如何实现的呢?这一篇将要详细的介绍. android的实现分享是通过隐式的启动activity. 分享文本 1.a ...

  8. H5_0008:链接分享图片和判断平台

    <!--分享图片--><div id="share_img" style="display:none;"><img class=& ...

  9. shareSdk分享图片

    /** * 只分享图片 * * @param bitmap bitmap */ private void sharedImage(Bitmap bitmap) { RxPermissions rxPe ...

随机推荐

  1. vim笔记2

    用vim 快两年了 看过教程也不少,总的来说还是得自己多练习,当自己觉得有需要的时候,再添加功能.这里分享个看过的最好的教程,出自贴吧的某个朋友,写的很好 零 学会盲打 壹 配置文件先从最简开始,在 ...

  2. php 数据库备份、还原

    1. mydb.php //DB类 2. backup.php //备份脚本 3. restore.php //还原脚本 mydb.php <? class db{ var $linkid; v ...

  3. javascript学习之【new操作符】

    首先请大家思考这么一段代码,如下: <script>var jquery=function(){     console.log(this);};jquery();new jquery() ...

  4. Android四大组件-Activity

    http://android.tgbus.com/Android/androidnews/201204/419485.shtml

  5. Hadoop中如何查看文件的block size

    因为对控制文件的分片数目,进而控制文件的map个数非常感兴趣,因此有查找如下资料的需求.下面来看看我总结的吧:) 当向HDFS上写文件时,可以通过设置dfs.blocksize配置项来设置文件的blo ...

  6. linux命令:df

    1.命令介绍: df用来检测磁盘空间占用情况. 2.命令格式: df [选项] 文件 3.命令参数: 必要参数: -a 全部文件系统列表 -h 方便阅读方式显示 -H 等于“-h”,但是计算式,1K= ...

  7. <转>你相信外星人的存在吗

    ​ 来自为知笔记(Wiz)

  8. 。net新人报道

    入行一年多  关注博客园也有半年的时间了 今天开始写第一篇东西  以后有什么笔记也会慢慢写上来的

  9. LaTeX_fleqn参数时,多行公式对齐居中的同时选择性的加编号

    [转载请注明出处]http://www.cnblogs.com/mashiqi 2016/10/20 一年多没写博文了.今天写一个短的,记录一下使用LaTeX的一些经验. 有些时候,我们的latex文 ...

  10. 《深入浅出Node.js》第6章 理解 Buffer

    @by Ruth92(转载请注明出处) 第6章 理解 Buffer ✁ 为什么需要 Buffer? 在 Node 中,应用需要处理网络协议.操作数据库.处理图片.接收上传文件等,在网络流和文件的操作中 ...