zoukankan      html  css  js  c++  java
  • 一键分享文字图片到新浪微博,facebook,twitter 还有保存打印等 (使用 iOS6 自带的 social.framework)

    因为写了一个把文字转为图片的长微博工具app,准备添加新功能,使其可以方便分享到新浪和twitter等社交网站,于是就看了下那些第三方库。

    首先就是ShareKit. ShareKit刚开始感觉不错,但是因为是很久前写的,用了很多deprecated的methods,而且不是ARC的。追求大而全,所以感觉很臃肿,而且原作者不再开发了,其他人写的使用这个库的demo我下载下来不知怎么都有错,就算改了也是一堆warnings。

    然后就是使用原厂的SDK,新浪要申请,手续繁琐,而且要单独去下载各家的SDK,很麻烦。

    用apple自带的social.framework方便简单,但是必须要iOS6, 所以得放弃一部分未升级的用户,估计很多开发者不愿意。

    不过不管怎样,这里简单介绍下如何通过其来分享内容。

    ( 通过这个demo可以直观的理解social.framework的使用流程:https://github.com/russj/ios6ShareDemo.git )

    首先到target,Build Phases->link binary with libraries,添加social.framework,然后在要使用这个framework的文件头添加 #import <Social/Social.h>

    • 记得要到iphone或者simulator里的setting->相关app账号(用户名,密码)设置好,不然找不到account,不能post。如果找不到新浪微博,把语言调到中文试试。如果没有预先设置好账号,social.framework在真机和simulator上表现会不同。比如没有预先设置好facebook账号,在真机上下面方法1中不会有facebook图标显示,但是在模拟器上会有图标,如果点击facebook的图标,会跳出提示需要设置facebook账号。其实就是在模拟器上,对于SLComposeViewControllerisAvailableForServiceType 所有service都是available的,但是在真机上必须的预先设置好才available
    • 注意facebook和twitter,weibo取消行为不同。要把twitter,weibo的 setCompletionHandler 放到 presentViewController:slComposerSheet 的前面。不然需要点击两次才能推出twitter和weibo的发送sheet。

       

    Social.Framework里有两种方法

      1. 第一种 UIActivityViewController。这个是最简单的。

    - (IBAction)shareByActivity:(id)sender {

        NSArray *activityItems;

        if (self.sharingImage != nil) {

            activityItems = @[self.sharingText, self.sharingImage]

        } else {

            activityItems = @[self.sharingText];

        }

         UIActivityViewController *activityController =

        [[UIActivityViewControlleralloc] initWithActivityItems:activityItems  applicationActivities:nil];

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

    }

    Yes, that's all. self.sharingText 和sharingImage就是要post的文字和图片了。效果见下面截图。短短几行代码你就得到8种分享途径。够简单了把。

    UIActivityViewController 使用截图

      2. 使用SLComposeViewController来分享到新浪微博。这个就相当于上面1里介绍的单个分享service。目前只有三种。新浪微博,facebook,twitter。微博力量大啊,估计以后还得加微信。

    代码还是下载看吧,这里贴代码不好排版,好像也不能像其他论坛那样插入code。

    总结:

      这个估计是最简单的实现社交分享功能的方法了。不足之处就是覆盖不够广泛,还有必须使用iOS6. 但是估计随着时间的推移,apple会丰富完善这个social.framework, 毕竟SNS是当下还有未来最火的热点之一。

  • 相关阅读:
    Jqgrid 属性描述
    Log4Net 配置独立文件
    jqgrid中 colModel
    jqgrid jsonReader
    sql 分割字符串
    网页默认浏览器以IE那个版本查看
    objectc基础:property,assign,copy,retain,release
    Sending 'ccColor4B' (aka 'struct_ccColor4B') to parameter of incompatible type 'CIColor *'
    CCAnimate 和 CCAnimation
    什么时候用removeUnusedSpriteFrames和removeUnusedTextures
  • 原文地址:https://www.cnblogs.com/russelljing/p/2717233.html
Copyright © 2011-2022 走看看