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. Jenkins_Maven_Git 持续集成及自动化部署 GentOS版

    1.安装JDK JDK下载: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 新 ...

  2. iOS学习之观察者模式

    观察者模式: 观察者具体应用有两个:通知机制(notification)和KVO(key-value-observing)机制 通知机制: 谁要监听值的变化,谁就注册通知 ,特别要注意,通知的接受者必 ...

  3. 北大poj-1081

    You Who? Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 801   Accepted: 273 Descriptio ...

  4. Ubuntu 14.10 创建虚拟网卡实现桥接网络

    目标需求:在Ubuntu主机创建一张虚拟网卡,使得搭建在VirtualBox中的其他主机能借助虚拟网卡构建的局域网进行相互间的通讯 步骤一:准备工具包 安装 uml-utilities 以及 brid ...

  5. SQL-数学、字符串、时间日期函数和类型转换

    --数学函数 --ABS绝对值,select ABS(-99)--ceiling取上限,select CEILING(4.5)--floor去下限select FLOOR(4.5)--power 几次 ...

  6. jquery 甘特图开发指南

    JQuery.Gantt是一个开源的基于JQuery库的用于实现甘特图效果的可扩展功能的JS组件库. <link rel="stylesheet" href="cs ...

  7. GnuRadio Hacking①:使用GnuRadio+SDR破解固定码无线遥控

    0×01 信号捕获 在这篇文章中,我们将使用GnuRadio+SDR硬件对某品牌型号的无线跳蛋进行无线重放攻击的演示. 市面上常见的无线遥控工作的频段,通常工作在315Mhz.433Mhz,也有少数的 ...

  8. Ubuntu14.04安装build-essential失败,包依赖问题如何解决?

    正在读取软件包列表... 完成 正在分析软件包的依赖关系树        正在读取状态信息... 完成        有一些软件包无法被安装.如果您用的是 unstable 发行版,这也许是 因为系统 ...

  9. 码农带你区分String类型的"=="和equals()

    大家玩csdn也可以关注我的博客额http://blog.csdn.net/wujiandong25253344 情形一: String s1= new String("hello" ...

  10. No.1 CAS 之LDAP认证服务端集群配置

    建档日期:   2016/08/31 最后修改日期:   2016/12/09   1 概述 本文描述了CAS单点登录服务端配置的大概流程,希望抛砖引玉,帮助你完成CAS服务端的配置. 本文采用apa ...