美文网首页程序员
iOS 社会化分享方案:

iOS 社会化分享方案:

作者: 墨_辰 | 来源:发表于2018-05-17 15:15 被阅读0次

接着二维码的生成后,又要求将二维码通过微信,微博等第三方的平台分享给别人:

方法一:通过友盟实现分享

1.注册友盟的APPKEY和导入对应的SDK;

2.配置SDK;

3.设置Web支持HTTP:

4.添加依赖库;

5.设置白名单(配置在info.plist中);

6.配置Schemes ;

7.在AppDelegate中配置相关信息;

8.设置回调;

然后就可以使用了,代码如下:

- (void)shareWebPageToPlatformType:(UMSocialPlatformType)platformType

{

 //创建分享消息对象

 UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];

 //创建网页内容对象

 //UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:self.file.fileName descr:[NSString stringWithFormat:@""] thumImage:_QRCodeImage];

 UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:self.fileName descr:@"" thumImage:self.QRCodeImage];

 //设置网页地址

 shareObject.webpageUrl = self.sharePath;

 //分享消息对象设置分享内容对象

 messageObject.shareObject = shareObject;

 //调用分享接口

 [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {

 if (error) {

 NSLog(@"分享失败");

 }else{

 NSLog(@"分享成功”);

 }

 }];

}

由于某些原因被迫放弃了这个方案。

方法二:使用系统原生Social Framework,这个方案只需要导入一个头文件,不需要导入其他的SDK。而且用起来也很简单。(此方法在ios11被废弃)

#import <Social/Social.h>

-(void)shareToWeibo{

 //创建分享的控制器

 SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];

 if (composeVc == nil){

 NSLog(@"未安装软件");

 return;

 }

 if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {

 NSLog(@"软件未配置登录信息");

 return;

 }

 //添加分享的文字、图片、链接

 [composeVc setInitialText:self.file.fileName];

 [composeVc addImage:self.QRCodeImage];

 [composeVc addURL:[NSURL URLWithString:self.sharePath]];

 //弹出分享控制器

 [self presentViewController:composeVc animated:YES completion:nil];

 //监听用户点击了取消还是发送

 composeVc.completionHandler = ^(SLComposeViewControllerResult result){

 if (result == SLComposeViewControllerResultCancelled) {

  NSLog(@"点击了取消");

 } else {

 NSLog(@"点击了发送");

 }

 };

}

碰到的问题是,一直在报软件未配置登录信息的问题。即使已经下载微博并且正常登录了也不行,试了很多的方法也搞不定。后来在论坛上看到说这个方案在iOS11已经被废弃了。

方法三:使用系统原生的UIActivityViewController方法,也很简单不用引入任何东西。但是真的是挺丑的。而且分享类型受限,不过发个二维码是足够用了。代码如下:

-(void)shareToOthers{

 //分享的标题

 NSString *textToShare = self.fileName;

 //分享的图片

 UIImage *imageToShare = self.QRCodeImage;

 //分享的url

 NSURL *urlToShare = [NSURL URLWithString:self.sharePath];

 NSArray *activityItems = @[textToShare,imageToShare,urlToShare];

 UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];

 //不出现在活动项目

 activityVC.excludedActivityTypes = @[UIActivityTypePrint, UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll];

 [self.fileViewController presentViewController:activityVC animated:YES completion:nil];

 // 分享之后的回调

 activityVC.completionWithItemsHandler = ^(UIActivityType _Nullable activityType, BOOL completed, NSArray * _Nullable returnedItems, NSError * _Nullable activityError) {

 if (completed) {

 NSLog(@"completed");

 //分享 成功

 } else {

 NSLog(@"cancled");

 //分享 取消

 }

 };

}

还有其他的方法可以看这个帖子:IOS社会化分享方案

相关文章

  • iOS 社会化分享方案总结

    iOS 社会化分享方案总结 iOS 社会化分享方案总结

  • iOS系统分享方案总结

    社会化分享作为iOS开发的必备技能,这里做一个方案总结,本文只讨论系统分享,不讨论第三方的分享方案。 一. UIA...

  • iOS 社会化分享方案:

    接着二维码的生成后,又要求将二维码通过微信,微博等第三方的平台分享给别人: 方法一:通过友盟实现分享 1.注册友盟...

  • iOS 社会化分享方案总结

    一、系统原生 UIActivityViewController 优缺点 优点:使用简单、不用注册繁杂的分享平台账号...

  • iOS无痕埋点方案分享探究

    iOS无痕埋点方案分享探究 iOS无痕埋点方案分享探究

  • iOS 性能优化资料整理

    iOS 性能监控方案 Wedjat(上篇) iOS 性能监控方案 Wedjat(�下篇) 【Dev Club分享】...

  • 腾讯官方微信分享集成遇到的问题

    社会化分享有很多解决方案,特别是以友盟、ShareSDK为代表的社会化分享平台更是我们一线码农的福音。最近手头上一...

  • iOS社会化分享

    现在所有的APP基本上都有社会化分享,我们一般使用友盟分享,当然还有ShareSDK等一些其他的三方分享库,不管是...

  • 常用软件

    omnifocus 知识管理软件 ShareSDK 功能强大、简单易用的iOS app开发必备社会化分享类库:Sh...

  • 分享问题实现汇总

    在iOS 或者安卓平台上实现社会化分享功能,一般就是通过第三方的SDK进行分享服务,如友盟分享,ShareSDK分...

网友评论

    本文标题:iOS 社会化分享方案:

    本文链接:https://www.haomeiwen.com/subject/wzvbdftx.html