美文网首页iOS点点滴滴iOS学习专题
iOS 苹果原生框架 分享 微信 QQ 微博

iOS 苹果原生框架 分享 微信 QQ 微博

作者: Booooooooom | 来源:发表于2017-11-24 17:34 被阅读181次

首先来说一下这个需求
1、可以分享图片、文字、链接
2、要有分享界面
3、分享出去后,在微信、qq聊天中不显示小尾巴

且不说前面两点,光是最后一点就很纠结,一开始用的是shareSDK 分享,但是咨询之后,发现小尾巴无法去除,几经波折才找到了苹果原生的框架分享social.framework 仅仅需要框架Social,引入文件<Socail/Socail.h>就可以使用。而且最方便的是应用体积变小了,不用去申请相关平台的key,直接分享,十分方便。

最主要的是 分享界面也已经写好的,如果没有什么特殊要求,直接用系统的就可以了,系统的分享一共可以使用两种:UIActivityViewController 和 SLComposeViewController

下面先来说一说UIActivityViewController

UIActivityViewController 的使用不需要引入socail.framework

但是用这个会先有一个底部的弹框


AE5C7D5F074C03CCBDAA1222177A861F.jpg

后面的分享效果就和SLComposeViewController分享一样,大家可以往下翻
类似于这种,必须选择之后才可以进行分享。这个底部弹框也可以自定义,这个我有空可以封装一下
调用这个用的代码很简单
activityItems 是图片数组,可以直接分享一组图片

NSMutableArray* activityItems = [NSMutableArray array];
    UIActivityViewController
    *activityVC = [[UIActivityViewController
                    alloc]initWithActivityItems:activityItems applicationActivities:nil];
    // 下面是添加是否显示的类别
//    activityVC.excludedActivityTypes = @[UIActivityTypePostToFacebook,UIActivityTypePostToTwitter,UIActivityTypeMessage,UIActivityTypeMail,UIActivityTypePrint,UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll,UIActivityTypeAddToReadingList,UIActivityTypePostToFlickr,UIActivityTypePostToVimeo,UIActivityTypePostToTencentWeibo, UIActivityTypeAirDrop,UIActivityTypeOpenInIBooks];
    [self presentViewController:activityVC animated:YES completion:nil];

试一试就知道了,其实很简单的

下面再说说SLComposeViewController
使用这个,必须要引入文件<Socail/Socail.h>,这个是系统内部框架,调用的代码如下

iOS 11之后 <Socail/Socail.h> 框架已移除

 //判断设备是否有分享的相应的软件,可选的有微博、微信、Twitter、Facebook
    if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {
        NSLog(@"或者没有配置相关的帐号");
    }else {
        NSLog(@"已安装");
        
        SLComposeViewController *slComposerSheet=  [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
        
//        [slComposerSheet setInitialText:@"分享到微信"];
        // 不能直接添加数组,需要多次添加
        [slComposerSheet addImage:[UIImage imageNamed:@"图片"]];
//        [slComposerSheet addURL:[NSURL URLWithString:@"http://www.weibo.com/"]];
        
        [self presentViewController:slComposerSheet animated:YES completion:nil];
    }

使用SLComposeViewController分享多个图片的时候 要注意要进行循环添加

贴一下图片,看一下分享效果 5BF93A6D59A518C9E0FAD7CAEC8D38C8.png 1E44A02A237654864FFB1181BA544DEB.png 3497434954D39285F96A6074A2CD2608.png

这样就已经是分享完成了

注意:
微信、qq分享时,因为原生框架没有加入这些,这里我们可以通过下面代码,通过打印出来的信息查看是否安装相关的软件

SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];

直接看控制台的信息
通用的字段判断,只需要把SLServiceTypeSinaWeibo 改成 下面这个字符串,就可以对应判断是否安装了相关软件

qq com.tencent.mqq.ShareExtension
微信 com.tencent.xin.sharetimeline

这里是通过 iOS 的 ShareExtension机制,大家可以了解一下

有什么不懂得,可以留言哦。代码较少,我就不贴具体的代码了
其实代码一点都不难,但这个由于国内主流的分享一般是shareSDK或者是友盟,所以这些东西还是比较少有人知道的,尤其是SLComposeViewController的使用。

相关文章

  • iOS 苹果原生框架 分享 微信 QQ 微博

    首先来说一下这个需求1、可以分享图片、文字、链接2、要有分享界面3、分享出去后,在微信、qq聊天中不显示小尾巴 且...

  • 社会化分享

    社会化分享 广告 - 免费推广. 原生框架 了解内容:(在中国不适用,只支持新浪微博和腾讯微博)苹果原生的只有新浪...

  • iOS 分享(微信、QQ、微博)

    iOS开发过程中可能会遇到需要进行第三方分享的需求,比如向QQ,微信,微博等分享,我们今天要讲到的方式是使用了一个...

  • 微信支付宝QQ微博分享登陆支付

    Social 微信 微博 支付宝 QQ 【 登陆 、分享、支付 原生分享】 。独立library 调用方便 详看文...

  • 一键分享,jq一键分享到qq qzone 微信 朋友圈 微博

    //分享QQ好友 //分享到QQ空间 //微信分享 // 分享新浪微博

  • iOS Accounts.framework

    Accounts框架是iOS原生提供的一套账户管理框架,其支持Facebook,新浪微博,腾讯微博,Twitter...

  • iOS原生分享

    前段时间看到一个帖子,分享时无法显示微信和QQ,最后发现是个笑话.哪位小伙子就没有安装微信和QQ. iOS原生分享...

  • iOS-友盟单个分享

    分享URL链接 微信好友 微信朋友圈 QQ QQ空间 新浪微博

  • Android多图分享(可定向APP)

    业务需求:同时分享多张图片(参照采源宝APP),实现至少对QQ好友,微博,微信,微信朋友圈的分享 qq,微博,微信...

  • 文档

    分享 集成了微信,朋友圈,qq,qq空间,微博分享; 分享参数 封装在了 微信分享 官方地址 QQ分享 官方地址 ...

网友评论

    本文标题:iOS 苹果原生框架 分享 微信 QQ 微博

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