http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 16262|回复: 3

[IPHONE] IOS实现在自己的APP中分享资讯到Facebook、Twitter等第三方网站(使用ShareKit)

[复制链接]
发表于 2012-12-29 09:45:53 | 显示全部楼层 |阅读模式
今天是周六,小版主给大家送上一篇帖子,属于小版主的原创帖子,当然,也有借鉴网上的资料。小版主接触ios开发时间不长,只希望与大家多多交流、共同进步。话不多说,看实现过程吧。

1、获取资源:
当然是下载这个库了,下载地址:http://www.getsharekit.com/d/ShareKit.0.2.1.zip
另附官网说明:http://www.getsharekit.com/install(在里面也可以获取得到完整的文档说明)

2、把你需要使用的资源加入到你的Project中:
从你下载的Example中复制文件到你的项目中,如下图:



注意:请确保选择copy选项哦。如图所示:



3、需要添加相关的frameworks:
如何添加frameworks想必大家都比我清楚吧,哈哈,下面这三个一定要添加进来哦:
  • SystemConfiguration.framework
  • Security.framework
  • MessageUI.framework

4、修改错误:
(1)修改错误:如果你把资源导入了项目,按command+B建置你的项目,出现了错误,就需要作出修改了哦:具体如下
第一个问题:'/usr/include/objc/objc-class.h' file not find或者#import</usr/include/objc/objc-class.h>not such file。哈哈,对于小版主来说,遇到问题就会google了,结果发现网上还真有人遇到这个问题。有两种解决方案。小版主两种方式都尝试过。
1> 将
  1. #import</usr/include/objc/objc-class.h>
复制代码
修改成
  1. #import <objc/runtime.h>
复制代码
2> 将
  1. #import</usr/include/objc/objc-class.h>
复制代码
修改成
  1. #import <objc/Object.h>  
复制代码
小版主是初次选择的第二种方案,在运行下载的Example的时候成功了哦。但是在自己的项目中却还是报错,所以尝试第二种方法,成功编译了哦。oh,yes。
(2)各个视图的 "退出"功能无效哦。没事,看看code吧。再google一下,还是找到了解决方法呢,所以说:不要畏惧error,只要自己有google的能力。
找到Core/SHK.h里的方法:
  1. - (void)hideCurrentViewControllerAnimated:(BOOL)animated
复制代码
并且修改如下:
  1. - (void)hideCurrentViewControllerAnimated:(BOOL)animated
  2. {
  3.     if (isDismissingView)
  4.           return;
  5. if (currentView != nil)
  6. {
  7.         self.isDismissingView = YES;
  8.        [currentView  dismissModalViewControllerAnimated:animated];
  9. }
  10. }
复制代码
oh,yes.成功了哦。

注意:如果你的项目使用了ARC的话,这个就灰常纠结了,需要一个一个文件使用-fno-objc-arc这个了。小版主也是无奈啊,写这个写了好久才搞定,如图:


5、接下来就是配置了:
SHKConfig.h文件的配置
  1. #define SHKMyAppName      @"APPNAME"  //APP的名称
  2. #define SHKMyAppURL        @"https://itunes.apple.com/hk/app/..."  //APP的url
复制代码
第三方的API key的配置,这里如果你是在国内的话,就需要使用VPN代理了哦,不然这些网站你是不能够访问的呢,小版主自己使用的是免费的VPN,但是免费的毕竟还是很纠结的(我这里只使用了Facebook和Twitter的分享功能)
(1)Facebook的配置:先到Facebook开发者中心去申请并且创建一个应用程序吧(http://www.facebook.com/developers/
         将自己申请生成的Key和Secret写到:
  1. #define SHKFacebookUseSessionProxy  NO
  2. #define SHKFacebookKey        @"申请的key"
  3. #define SHKFacebookSecret      @"生成的<span style="background-color: rgb(255, 255, 255);">Secret</span>"
复制代码
(2)Twitter的配置:如Facebook,申请地址:(http://dev.twitter.com/apps/new
         填入:
  1. #define SHKTwitterConsumerKey    @""
  2. #define SHKTwitterSecret      @""
  3. #define SHKTwitterCallbackUrl    @""
复制代码
(3)其他的配置可以到相对应的网站注册API KEY哦。(Tumblr和Google Reader是不需要配置的,这个可以有,哈哈)

6、做了这么就的工作,接下来可以使用它了哦(调用):
以分享url和文字为例,在你的调用的方法里写上:
  1. #pragma mark - share
  2. - (void)share:(NSString *)shareInfo parent:(UIView *)view
  3. {
  4.     NSURL *url = [NSURL URLWithString:@"https://itunes.apple.com/hk/app/......"]; //分享url
  5.     SHKItem *item = [SHKItem URL:url title:shareInfo];    //shareInfo是文字,也就是title
  6.     SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];
  7.     [actionSheet showFromRect:CGRectMake(0, 0, 320, view.bounds.size.height) inView:view animated:YES];
  8.    
  9.     //使用如下代码可以离线分享(在适当的地方)
  10.     //[SHK flushOfflineQueue];
  11. }
复制代码
因为我只需要做Facebook和Twitter的分享功能,所以还要修改一下它的代码:
SHK.m中:
  1. + (NSArray *)favoriteSharersForType:(SHKShareType)type

  2. {   
  3.       NSArray *favoriteSharers = [[NSUserDefaults standardUserDefaults] objectForKey:[NSString stringWithFormat:@"%@%i", SHK_FAVS_PREFIX_KEY, type]];
  4.       // set defaults
  5.       if (favoriteSharers == nil)
  6.       {
  7.             switch (type)
  8.             {
  9.                   case SHKShareTypeURL:
  10.                          favoriteSharers = [NSArray arrayWithObjects:@"SHKFacebook",nil];
  11.                          break;
  12.                   case SHKShareTypeImage:
  13.                          favoriteSharers = [NSArray arrayWithObjects:@"SHKMail",@"SHKFacebook",@"SHKCopy",nil];
  14.                          break;
  15.                   case SHKShareTypeText:
  16.                          favoriteSharers = [NSArray arrayWithObjects:@"SHKMail",@"SHKTwitter",@"SHKFacebook", nil];
  17.                          break;
  18.                   case SHKShareTypeFile:
  19.                          favoriteSharers = [NSArray arrayWithObjects:@"SHKMail", nil];
  20.                          break;
  21.             }
  22.             // Save defaults to prefs
  23.             [self setFavorites:favoriteSharers forType:type];
  24.       }
复制代码
在SHKActionSheet.m中注释掉下面的一些代码:
  1. [as addButtonWithTitle:SHKLocalizedString(@"More...")];
复制代码
最后上模拟器效果截图吧:

Share

Share



希望大家多多交流,共同进步。
By    : Koson
QQ   : 674946329
Email: 674946329@qq.com(个人)
           koson@sufeinet.com(论坛)




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2012-12-29 22:31:40 | 显示全部楼层
发表于 2012-12-29 22:31:58 | 显示全部楼层
发表于 2012-12-30 17:10:26 | 显示全部楼层
写的不错了,先收着。有空看咯
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-3-29 16:30

© 2014-2021

快速回复 返回顶部 返回列表