iOS 6の新しいSLComposeViewController
をFacebook、Twitter、Sina Weiboに投稿するために必要な手順はありますか?このフレームワークの詳細についてはSLComposeViewController共有のチュートリアル
答えて
AppleのSocial Framework Class Reference
追加のチュートリアルを参照してください。
- 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、またはSina Weiboに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のアルファ値で有効になり、サービスが利用できない場合、アルファ値は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
を再度チェックします。 (最後のチェックの間に何かが間違っていたか、ポストボタンと作曲家のall/initをタップする間に何分も何分もの間に空きが変わってしまった場合)。以下のコードはFacebookの作曲家のシートをテキスト、このアクションは、コンポーザーの取り消し済みおよび実行済みの結果の完了ハンドラーも使用します。viewWillAppear
で
- (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];
}
}
我々は、アカウント情報を変更したときにアプリケーションに通知することができますので、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
をリンクします。それだけです!あなたは終わった!
ただ、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を変更するだけです。
安全利用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];
}];
}
- 1. 共有ライブラリがTIZENサンプルの両方のチュートリアルに
- 2. 目的c SLComposeViewControllerがiPhoneのFacebookアプリケーション経由で投稿を共有しないようにする方法
- 3. 共有Mavenリポジトリのデータボリュームの共有
- 4. SLComposeViewController画像は100キロバイト
- 5. 共有コードへの共有と追加
- 6. Angular2共有コンポーネントが共有されていない共有コンポーネント
- 7. 共有ポイント上で共通のデータを共有
- 8. Oracle MAFソーシャルメディア共有とデフォルト共有パネル
- 9. 共有共有ボタンが横に
- 10. 共有SqlConnectionの
- 11. 共有のURL、
- 12. iOS 11の「SLComposeViewController」についてベータ版
- 13. 配列の共有ptrからの共有ptrへのアクセス
- 14. Twitterの共有ボタン
- 15. 共有ライブラリのMakefile?
- 16. Facebookの共有アクションスウィフト
- 17. 共有コードのレイアウト
- 18. ソーシャルネットワークのオフピーク共有
- 19. LinkedIn共有のコンテンツセキュリティポリシー
- 20. Excelスプレッドシートの共有
- 21. 共有ポインタのソートリスト
- 22. 共有ホスティングのスケジューリング
- 23. 共有ホスティングプランのPHPUnit?
- 24. Linuxの共有メモリ
- 25. Scalaの共有リンクリスト
- 26. 共有ビューのインデックス
- 27. 共有ビューのCanCan
- 28. 共有ライブラリのファイルサイズ
- 29. サイトタイトルの共有ポイント
- 30. 共有リンクのサムネイル
こんにちは、 それは私が小さな疑問を持っているけれども、場合、ユーザーのTwitter/Facebookのアカウントが設定されていないで、私たちも存在ログインインタフェースすることができ、素敵な答えでしたアップ? –
@AbhinandanSahgalいいえ、このクラスではありません。しかし、正しく動作している場合、作曲者は、ユーザがログインしていないかどうかを検出し、適切なサービスが自分のアカウントにログインするための設定に警告を出す。 –
サンプルを置いて設定することはできますか? –