基础的友盟分享请寻找其他资料,本文只是对友盟分享做一个总结和细节的注意点记录,更多的是本人的学习记录吧.
一.Http图片的分享
有其他的网友说并不支持http的图片分享,只能去分享https的网络图片,这其实是不对的。可以分享http的图片的,关键代码如下:
[UMSocialGlobal shareInstance].isUsingHttpsWhenShareContent = NO;
该函数默认开启https,我们在调用分享方法之前设置为no,即可分享http的图片.分享代码如下:
//分享图片
+ (void)shareImageWithPlatform:(int)platformType shareImage:(UIImage *)image completion:(void(^)(BOOL success))completion
{
if (![[UMSocialManager defaultManager] isInstall:platformType])
{
[KeyWindow sz_showToast:@"未安装应用"];
return;
}
//设置分享数据
UMSocialMessageObject *msg = [UMSocialMessageObject messageObject];
UMShareImageObject *shareObject = [[UMShareImageObject alloc] init];
[shareObject setShareImage:image];
msg.shareObject = shareObject;
[UMSocialGlobal shareInstance].isUsingHttpsWhenShareContent = NO;
//调用分享接口
[[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:msg currentViewController:nil completion:^(id result, NSError *error) {
if (error)
{
completion(NO);
}else
{
completion(YES);
}
}];
}
二.分享H5链接到微信朋友圈
分享链接到朋友圈的代码如下:
//分享链接
+ (void)shareWebViewWithPlatform:(int)platformType WithWebUrl:(NSString *)weburl WithImageUrl:(NSString *)imageUrl shareTitle:(NSString *)title shareDes:(NSString *)des completion:(void(^)(BOOL success))completion
{
if (![[UMSocialManager defaultManager] isInstall:platformType])
{
[KeyWindow sz_showToast:@"未安装应用"];
return;
}
UMSocialMessageObject *msg = [UMSocialMessageObject messageObject];
UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:title descr:des thumImage:imageUrl];
shareObject.webpageUrl = weburl;//分享链接
msg.shareObject = shareObject;
[UMSocialGlobal shareInstance].isUsingHttpsWhenShareContent = NO;
//调用分享接口
[[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:msg currentViewController:nil completion:^(id result, NSError *error) {
if (error)
{
completion(NO);
}else
{
completion(YES);
}
}];
}
值得注意的是,分享链接到微信好友和分享到微信朋友圈是不一样的。分享链接的方法里面有一个descr的参数,它的意思是“描述”,在分享到微信朋友圈的时候,这个描述的参数值是不会展示出来的,只有分享给好友才会显示出来。
三.分享网络图片
很简单,直接将获取到的网络地址转为UIImage,再调用上面一中的分享图片的方法即可.转换和调用的代码如下:
UIImage *shareImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://danqiu-cc1.oss-cn-chengdu.aliyuncs.com/3e75cfaf7a604b02befd74f954160ca0/slideshow/dc9826c49cec4752a276a330bdf5ba8e.jpg?Expires=1947829583&OSSAccessKeyId=LTAI5tNQf137Gmkq8w2f2YAn&Signature=iaVVDVKVlD4Bo4EFnYZUGpaNPIA%3D"]]];
//调用上面一封装好的方法
[DQSShareTools shareImageToWechatSessionWithImage:shareImage completion:^(BOOL success) {
}];
四.微信和QQ,只能在“图文分享”和“文本分享”中选择其中一种方式,不能图片和文本都进行分享。微博分享是可以图片和文本一起分享的。有网友出现了使用微博分享,需求是:出现文字+链接+图片的分享功能,发现尽管设置了图片,但是图片就是不出来,只有文字,或者加个连接。解决方式如下:
最重要的是这个title,我直接在后面跟了个网址链接。这样拼接就能做到文字+链接+图片的功能了。