|
今天是周六,小版主给大家送上一篇帖子,属于小版主的原创帖子,当然,也有借鉴网上的资料。小版主接触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> 将- #import</usr/include/objc/objc-class.h>
复制代码 修改成2> 将- #import</usr/include/objc/objc-class.h>
复制代码 修改成小版主是初次选择的第二种方案,在运行下载的Example的时候成功了哦。但是在自己的项目中却还是报错,所以尝试第二种方法,成功编译了哦。oh,yes。
(2)各个视图的 "退出"功能无效哦。没事,看看code吧。再google一下,还是找到了解决方法呢,所以说:不要畏惧error,只要自己有google的能力。
找到Core/SHK.h里的方法:- - (void)hideCurrentViewControllerAnimated:(BOOL)animated
复制代码 并且修改如下:
- - (void)hideCurrentViewControllerAnimated:(BOOL)animated
- {
- if (isDismissingView)
- return;
- if (currentView != nil)
- {
- self.isDismissingView = YES;
- [currentView dismissModalViewControllerAnimated:animated];
- }
- }
复制代码 oh,yes.成功了哦。
注意:如果你的项目使用了ARC的话,这个就灰常纠结了,需要一个一个文件使用-fno-objc-arc这个了。小版主也是无奈啊,写这个写了好久才搞定,如图:
5、接下来就是配置了:
SHKConfig.h文件的配置- #define SHKMyAppName @"APPNAME" //APP的名称
- #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写到:- #define SHKFacebookUseSessionProxy NO
- #define SHKFacebookKey @"申请的key"
- #define SHKFacebookSecret @"生成的<span style="background-color: rgb(255, 255, 255);">Secret</span>"
复制代码 (2)Twitter的配置:如Facebook,申请地址:(http://dev.twitter.com/apps/new)
填入:- #define SHKTwitterConsumerKey @""
- #define SHKTwitterSecret @""
- #define SHKTwitterCallbackUrl @""
复制代码 (3)其他的配置可以到相对应的网站注册API KEY哦。(Tumblr和Google Reader是不需要配置的,这个可以有,哈哈)
6、做了这么就的工作,接下来可以使用它了哦(调用):
以分享url和文字为例,在你的调用的方法里写上:- #pragma mark - share
- - (void)share:(NSString *)shareInfo parent:(UIView *)view
- {
- NSURL *url = [NSURL URLWithString:@"https://itunes.apple.com/hk/app/......"]; //分享url
- SHKItem *item = [SHKItem URL:url title:shareInfo]; //shareInfo是文字,也就是title
- SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];
- [actionSheet showFromRect:CGRectMake(0, 0, 320, view.bounds.size.height) inView:view animated:YES];
-
- //使用如下代码可以离线分享(在适当的地方)
- //[SHK flushOfflineQueue];
- }
复制代码 因为我只需要做Facebook和Twitter的分享功能,所以还要修改一下它的代码:
SHK.m中:- + (NSArray *)favoriteSharersForType:(SHKShareType)type
- {
- NSArray *favoriteSharers = [[NSUserDefaults standardUserDefaults] objectForKey:[NSString stringWithFormat:@"%@%i", SHK_FAVS_PREFIX_KEY, type]];
- // set defaults
- if (favoriteSharers == nil)
- {
- switch (type)
- {
- case SHKShareTypeURL:
- favoriteSharers = [NSArray arrayWithObjects:@"SHKFacebook",nil];
- break;
- case SHKShareTypeImage:
- favoriteSharers = [NSArray arrayWithObjects:@"SHKMail",@"SHKFacebook",@"SHKCopy",nil];
- break;
- case SHKShareTypeText:
- favoriteSharers = [NSArray arrayWithObjects:@"SHKMail",@"SHKTwitter",@"SHKFacebook", nil];
- break;
- case SHKShareTypeFile:
- favoriteSharers = [NSArray arrayWithObjects:@"SHKMail", nil];
- break;
- }
- // Save defaults to prefs
- [self setFavorites:favoriteSharers forType:type];
- }
复制代码 在SHKActionSheet.m中注释掉下面的一些代码:- [as addButtonWithTitle:SHKLocalizedString(@"More...")];
复制代码 最后上模拟器效果截图吧:
Share
希望大家多多交流,共同进步。
By : Koson
QQ : 674946329
Email: 674946329@qq.com(个人)
koson@sufeinet.com(论坛)
|
|