ゲーム大好きパソコンバカが興味を持ったものを綴るブログであります。プログラム、家庭用ゲーム、パソコン自作、ニコニコ動画、生活家電についての話題が中心になるかと思われます。Facebook久々のiPhoneプログラムネタです。Facebookと連携するアプリを開発する際、Facebook公式のSDKを使うことで簡単に開発ができるのですが、SDKをDLしてそのまま使用するとアプリによってはあまりよろしくない設定がされているのでソースをカスタマイズしてみようと思いました。ライブラリ化はされておらず、ヘッダとソースが存在しているので簡単にカスタマイズができます。■Facebookログイン認証をアプリ内で実行するアプリからSDKのログイン処理を実行すると初期設定では、Facebook公式アプリがコールされます。開発しているアプリにURLスキームを設定しておくことで公式アプリからログイン完了後にアプリがコールされて戻ってきます。これってバックグランド対応していないといけなくてめんどくさいです。仮にアプリがインストールされていなかったらSafariが起動して同じ事を処理されます。これをアプリ内でログインダイアログを表示して処理を行うようにしましょう。safariAuth:NO];のところYESをすべてNOにしましょうログイン処理実行メソッドは275行目のここの処理になります。safariAuth:NO];}あまり意味はないと思いますが298行目以降のメソッドはFacebookアプリからコールバックで返ってきたとき用の処理っぽいのでこちらは放置しててもいいかもちなみにログインダイアログは以下のように表示されます。■ログインダイアログで処理中なのかを表示したいさきほどの対応で、ログイン処理をアプリ内でダイアログ表示して対応することができました。このままログインを実行しても画面に変化がなく、サーバーからレスポンスがくるとコールバック関数の処理が実行されます。この間3秒ちょっとあり、ユーザーからみると固まっているようにみえログインボタンを複数回連打される恐れがあります。ちなみにログインボタン連打するとエラーになってログイン処理がうまく実行されなくなりました。実はこのWebViewの画面にはアクティビティインジケータが登録されていました。表示がされないのはなぜかと思い調べたところ以下の部分を修正すれば表示されるようです。FBDialog.mファイルの327〜328行目にて、アクティビティインジケータの初期化がされていますが、ここを以下のように修正します。目立たないというのがひとつの理由です。405行目の以下の処理をコメントアウトします。NO;としないと表示がされません。*)webViewとUIWebViewのデリゲートとなっています。Webサイトの読み込みが完了時にコールされる箇所なのでアクティビティインジケータを非表示にする処理が実行されています。一つ上のメソッドにてWebViewの読み込み開始時のコールバックが定義されています。*)requestnavigationType:(UIWebViewNavigationType)navigationTypeなので369行目あたりに以下の処理を追加します。読み込み完了時に非表示になるようになります。ケースにいれてお届けします。image【Xcode】各iPhone毎の解像度やUINavigationBarの問題など..この記事へのコメント王超お世話になっております。Softwareの王超と申します先日メールを送っていただき、早春キャンペーンということ報告しました、ヒイロ様にもっと詳しい情報をお伝えるようにメール再送致します、ご迷惑をかけていたら、申し訳ありません。今度のキャンペーンが昔との最大の違いところといえば、すべての贈り物が最新バージョンのソフトウェアである。ブルーレイ、DVDバックアップソフトウェア、HDビデオ変換ソフトウェア、iphone,ipad,androidに対応ビデオストリーミング、など、様々なソフトウェアがユーザー達の最新需要を満たすようにアップグレードされています。ゲームを遊んで無料にソフトウェアをゲットするチャンスがあります、読者達にとってきっと役に立つ情報と思います。貴サイトで推奨いただければと存じます。Uをフラゲで買ってきました。2.0Seesaaブログ。