什么是我需要按照使用的iOS 6的新步骤SLComposeViewController
张贴到Facebook,Twitter或新浪微博?
Answer 1:
有关此框架的详细信息,请参阅苹果公司的社会框架类参考
其它教程:
- http://soulwithmobiletechnology.blogspot.com/2012/07/tutorial-how-to-use-inbuilt.html
- http://www.mobile.safilsunny.com/iphone/integrating-facebook-ios/
- http://rudeboy-quickies.blogspot.com/2012/06/steps-to-integrate-facebook-in-ios6.html
- https://developer.apple.com/videos/wwdc/2012/?id=306
在这个例子中,我们将使用SLComposeViewController
的SLServiceTypeFacebook
。 如果您想使用Twitter或新浪微博只是改变了SLServiceType下列之一:
- SLServiceTypeFacebook
- SLServiceTypeSinaWeibo
- SLServiceTypeTwitter
iOS 6中取得了很容易直接张贴到Facebook,Twitter或通过新浪微博SLComposeViewController
。 这适用于iOS 5中的非常相似TWTweetComposeViewController
。
首先,在您的视图控制器的头文件(.H) #import
的社会框架和会计框架。
#import <Social/Social.h>
#import <Accounts/Accounts.h>
在这里,我们将宣布一个简单UIButton
和IBAction
我们稍后将链接到该按钮和一个void
,这将被用来检查所选共享服务是可用的(sharingStatus)。
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIButton *easyFacebookButton;
- (IBAction)facebookPost:(id)sender;
- (void)sharingStatus;
@end
@implementation ViewController
然后,在您的实现文件(.M),我们将通过实现,我们在头文件中声明(sharingStatus)无效开始。 sharingStatus使用SLComposeViewController
的isAvailableForServiceType
BOOL返回你是否可以张贴在其参数中指定的服务。 在这种情况下,我们将使用的服务类型SLServiceTypeFacebook
。 如果提供服务的按钮后将会1.0f的alpha值被启用,如果服务不可用的按钮将被禁用其阿尔法值设置为0.5F。
- (void)sharingStatus {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
NSLog(@"service available");
self.easyFacebookButton.enabled = YES;
self.easyFacebookButton.alpha = 1.0f;
} else {
self.easyFacebookButton.enabled = NO;
self.easyFacebookButton.alpha = 0.5f;
}
}
在这里,我们将建立IBAction
,将调出作曲家。 对于好的做法,我们将检查isAvailableForServiceType
再次以避免调用因为这是不可用的服务类型的作曲家。 (柜面东西最后检查过程中出了问题,或者如果可用性以某种方式在第二的分数敲击后按钮和作曲家所有/ INIT之间改变了,下面的代码已经被设置为显示一个Facebook作曲家片材的文本,图像和链接。这个动作也利用了作曲家的取消和完成结果的完成处理程序。
- (IBAction)facebookPost:(id)sender {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
SLComposeViewController *mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[mySLComposerSheet setInitialText:@"iOS 6 Social Framework test!"];
[mySLComposerSheet addImage:[UIImage imageNamed:@"myImage.png"]];
[mySLComposerSheet addURL:[NSURL URLWithString:@"http://stackoverflow.com/questions/12503287/tutorial-for-slcomposeviewcontroller-sharing"]];
[mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
switch (result) {
case SLComposeViewControllerResultCancelled:
NSLog(@"Post Canceled");
break;
case SLComposeViewControllerResultDone:
NSLog(@"Post Sucessful");
break;
default:
break;
}
}];
[self presentViewController:mySLComposerSheet animated:YES completion:nil];
}
}
在viewWillAppear
我们将观察员注册ACAccountStoreDidChangeNotification
因此应用程序时,账户信息变更通知。 这名观察员将在随后被移除viewDidDisappear
。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sharingStatus) name:ACAccountStoreDidChangeNotification object:nil];
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:ACAccountStoreDidChangeNotification];
}
最后,打开界面生成器和添加UIButton
这将是后按钮。 然后在连接检查链接的IBOutlet
和IBAction
我们前面的按钮创建的,这就是它! 你完成了!
Answer 2:
只要使用这个代码在Facebook上分享。
SLComposeViewController *controllerSLC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[controllerSLC setInitialText:@"First post from my iPhone app"];
[controllerSLC addURL:[NSURL URLWithString:@"http://www.appcoda.com"]];
[controllerSLC addImage:[UIImage imageNamed:@"test.jpg"]];
[self presentViewController:controllerSLC animated:YES completion:Nil];
如果你想要这个Twitter的然后就改变SLServiceTypeTwitter。
Answer 3:
SLComposeViewController的安全使用
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
SLComposeViewController *fbPost = [SLComposeViewController
composeViewControllerForServiceType: SLServiceTypeFacebook];
[fbPost setInitialText:@"Text You want to Share"];
[fbPost addImage:[UIImage imageNamed:@"shareImage.png"]];
[self presentViewController:fbPost animated:YES completion:nil];
[fbPost setCompletionHandler:^(SLComposeViewControllerResult result) {
switch (result) {
case SLComposeViewControllerResultCancelled:
NSLog(@"Post Canceled");
break;
case SLComposeViewControllerResultDone:
NSLog(@"Post Sucessful");
break;
default:
break;
}
[self dismissViewControllerAnimated:YES completion:nil];
}];
}