.19 2012

Facebook SDKを使う時の初期設定

WWDCにてiOS6が発表されました。
なんとTwitterに続いてFacebookもOSレベルでサポートされることになりました。

そんなタイミングでFacebookSDKの話をしちゃうUTOです。こんばんは。

今回の話はFacebook公式SDKをGitからダウンロードして使うときに
ここは設定したほうがいいよっという部分を明記したいと思います。

ZIPを展開して「src」フォルダのなかに必要なソースがすべて入っています。
プロジェクトで使用したときはこのフォルダ内をすべて登録すればOKなのですが

そのままだと以下の部分にて不満点が発生します。

1.FacebookログインがアプリジャンプまたはWebジャンプになっており
マルチタスクアプリにし、URLスキームを登録しておかないとうまく動かない

2.上記対応をした後、アプリ内ログイン画面にて、ログインボタン押下して画面遷移するまでの間に
インジケーターが表示されないため、何回かログインボタン押下することができ、エラーになる。

まず1の対応をします。

Facebook.mの331行目にある

- (void)authorize:(NSArray *)permissions

ここの中で以下を修正しましょう


[self authorizeWithFBAppAuth:YES safariAuth:YES];
 ↓
[self authorizeWithFBAppAuth:NO safariAuth:NO];


以上です。
これでログインダイアログ表示っという処理を行うと
アプリ内でポップアップビューが表示されるようになります。


2.の対応ですが
これはSDK側がミスしているので手直しが必要です。

元々インジケーターを表示するように設定しているのですが、
・表示する処理のメソッドをコールしていない。
・非表示処理にてインジケーターのHiddenプロパティをYESにした後HiddenプロパティをNOにする処理がない。
っとなっています。

FBDialog.mの440行目にある

- (void)hideSpinner

このメソッド内の

_spinner.hidden = YES;

これを削除しましょう。
直前にてstopAnimationが実行されているので
そもそもインジケーターはアニメーション停止させれば非表示になりますので
HiddenプロパティをYESにする必要はありません。

そしてログインボタンを押下するといった通信を開始するときにコールバックされる

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

のなかで

[self showSpinner];

を追加してあげましょう。

これでFacebookSDKが用意するダイアログ画面での通信中はインジケーターが表示されるようになります。

おまけ
インジケーターの種類は初期化メソッド内で指定されているので
タイプを変更することができます。

368行目あたりにinitメソッド内で定義されています。

_spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:
UIActivityIndicatorViewStyleWhiteLarge];

ここで変更が可能です。

最近XCodeでプログラムを書いていないから
こんな感じでリハビリ中!

プライペートでMacMiniを購入したので
時間が作ること出来れば個人でアプリを作っていきたいですね~
関連記事
スポンサーサイト



Comment

Post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

Trackback

trackbackURL:http://appteam.blog114.fc2.com/tb.php/233-1db9c11c

ブログ内検索

関連リンク

製品情報

最新記事

カテゴリ

プロフィール

neoxneo



NEXT-SYSTEM iOS Developers Blog


  • UTO:
    カナダ版iPhone4Sは、マナーモードでシャッター音がならない…


  • Ehara:
    ...


  • Hayate:
    ...


  • Tasaki:
    Developer登録完了...したのはいいけど


  • Ueda:
    ...



リンク