使用subclass UIActivity的方案来分享图片
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的方案来分享图片的更多相关文章
- 微信在IOS7下无法分享图片
家里老大的iphone5在WWDC后第一时间升级了IOS7. 整体的UI风格和功能都很喜欢, 偶尔的crash还能接受. 但是最常用的软件之一微信,在IOS7下无法分享图片这点一直让她耿耿于怀. 从用 ...
- Android微信分享图片大于32k进行压缩
微信分享视频的时候,需要传一个图片数组,大小不能大于32k. 解决方案:使用Bitmap自带的compress方法解决了这个问题. 源码如下: <span style="font-si ...
- Android 高清加载巨图方案 拒绝压缩图片
Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/49300989: 本文出自:[张 ...
- iOS 学习 - 13.微信分享链接、QQ 分享图片
准备工作---原文来自这个 首先要在微信开放平台申请 AppID 和 QQ ID(我第一天晚上申请的,第二天中午就通过了),接着导入 SDK,也就是3个 .h 和一个 .a 文件,详情见这里 如果你是 ...
- 微信朋友圈如何同时分享(图片+文字) Android版
以下是:微信朋友圈SDK 分享图片的代码,但只能分享图片,不能分享文字,如何才能图片和文字同时分享?求各位大神指教! public class MainActivity extends Activit ...
- 使用pillow生成分享图片
重复性的工作一定要交给计算机去做! 有时候要为公司做一张宣传用的分享图片,很简单交给设计通过ps.AI做好就行了,但是如果一个网站要为每个用户生成一张专属的分享图片,如果让设计师一张一张的去做,哪设计 ...
- Android实现分享图片和文字的功能
为了应用的推广,我们经常看到点击分享按钮会出现,比如微博微信等应用的分享二等列表,这是如何实现的呢?这一篇将要详细的介绍. android的实现分享是通过隐式的启动activity. 分享文本 1.a ...
- H5_0008:链接分享图片和判断平台
<!--分享图片--><div id="share_img" style="display:none;"><img class=& ...
- shareSdk分享图片
/** * 只分享图片 * * @param bitmap bitmap */ private void sharedImage(Bitmap bitmap) { RxPermissions rxPe ...
随机推荐
- HBase 实战(2)--时间序列检索和面检索的应用场景实战
前言: 作为Hadoop生态系统中重要的一员, HBase作为分布式列式存储, 在线实时处理的特性, 备受瞩目, 将来能在很多应用场景, 取代传统关系型数据库的江湖地位. 本篇主要讲述面向时间序列/面 ...
- 如何让UIView中的Button点击之后跳转到另一个ViewController上去,ViewController上也有一个按钮 可以返回
第一种方法:如果使用导航第一个按钮方法:[self.navigationController pushViewController:secondVC animated:YES];第二个按钮方法:[se ...
- Github Atom 1.12.0-beta3 发布
Github Atom 1.12.0-beta3 发布了,Atom 是 Github 专门为程序员推出的一个跨平台文本编辑器.具有简洁和直观的图形用户界面,并有很多有趣的特点:支持CSS,HTML,J ...
- 官网app下载更换成微信公众号二维码 测试
微信现在很火啊.公司官网原先提供的ios和andriod的app下载链接要求切换成微信公众号二维码.简单的替换,大家都说不需要测试直接上线.还是测了下. 1 验证所有与下载相关的信息都已去除. 包括下 ...
- 使用NFC读卡器ACR122u读取银行卡信息
使用NFC读卡器 ACR122u 使用ACR122u Tool 软件发送spdu指令即可 一些运行结果 如上所示,银行卡的卡号,有效期,卡主姓名,身份证号,进期消费记录均可读出
- NSOperationQueue的基本使用
NSOperationQueue的作用 NSOperation可以调用start方法来执行任务,但默认是同步执行的 如果将NSOperation添加到NSOperationQueue(操作队列)中,系 ...
- system_call中断处理过程分析
本文所有的分析内容都是基于Linux3.18.6内核,鉴于对应不同内核版本,系统调用的实现不相同.若需要分析其他版本内核的系统调用的实现过程,请谨慎参考. system_call函数的功能是用来响应外 ...
- _crol_和_cror_函数
“_crol_” 与“_cror_”其实就是左右循环代码,其具有程序代码简单执行效率高的优点! 是在单片机c语言编程中常用到的,变量=_crol_(变量名,移动位数),例如:P0=_crol_(P0, ...
- RabbitMQ - 引入库产生的一次pthread_create错误
最近在项目中使用rabbitMQ,在引入编译生成的libamqpcpp.so库文件,由于各个文件夹之间需要使用静态库进行连接,所以在引入libamqpcpp.so基础上再进行了一次.a文件生成.编译执 ...
- 调试python程序
pdb 关键步骤 python -m pdb ***.py n 单步