iOS 友盟分享总结

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

一.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,我直接在后面跟了个网址链接。这样拼接就能做到文字+链接+图片的功能了。

要在Flutter中使用友盟分享,首先需要在项目中添加友盟分享的插件。可以使用flutter_umeng_share插件,它提供了友盟分享的各种功能。 1. 在pubspec.yaml文件中添加依赖: ``` dependencies: flutter_umeng_share: ^2.0.0 ``` 2. 在项目中集成友盟分享SDK: 在Flutter项目的MainActivity.java文件中,添加以下代码: ``` import com.umeng.socialize.UMShareAPI; public class MainActivity extends FlutterActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); GeneratedPluginRegistrant.registerWith(this); UMShareAPI.get(this);//添加这一行 } } ``` 3. 初始化友盟分享SDK: 在项目中的main.dart文件中,添加以下代码: ``` import 'package:flutter_umeng_share/flutter_umeng_share.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await FlutterUmengShare.init( androidKey: 'your_umeng_android_app_key', iosKey: 'your_umeng_ios_app_key'); runApp(MyApp()); } ``` 其中,'your_umeng_android_app_key'和'your_umeng_ios_app_key'需要替换为你自己的友盟App Key。 4. 使用友盟分享: ``` import 'package:flutter_umeng_share/flutter_umeng_share.dart'; //分享文本 FlutterUmengShare.shareText('This is a test.'); //分享图片 FlutterUmengShare.shareImage(imagePath: 'image_path', text: 'This is a test.'); //分享链接 FlutterUmengShare.shareWeb( url: 'https://www.example.com', title: 'This is a test.', description: 'This is a test.', thumb: 'thumb_image_path'); ``` 以上就是在Flutter中使用友盟分享的基本步骤。你可以根据自己的需求,选择更多的分享方式,例如分享音乐、视频等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值