基础的友盟分享请寻找其他资料,本文只是对友盟分享做一个总结和细节的注意点记录,更多的是本人的学习记录吧.

一.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,只能在“图文分享”和“文本分享”中选择其中一种方式,不能图片和文本都进行分享。微博分享是可以图片和文本一起分享的。有网友出现了使用微博分享,需求是:出现文字+链接+图片的分享功能,发现尽管设置了图片,但是图片就是不出来,只有文字,或者加个连接。解决方式如下:

android 友盟纯分享图片 ios友盟分享_ios

最重要的是这个title,我直接在后面跟了个网址链接。这样拼接就能做到文字+链接+图片的功能了。