iPhoneシミュレーターで実行されているMonotouch Facebookバインディングを「iPhone」デバイス(つまり、320x480)として使用していますが、承認しようとすると、(アプリ内の)ポップアップダイアログが消えません。これは、monotouch-bindings に含まれているサンプル アプリでも発生します。何が起こるかは次のとおりです。
- Facebook.Authorize を呼び出す
- アプリ内のFacebookログイン ダイアログが表示されます
- 資格情報を入力し、「ログイン」を押します
- アプリのFacebookのダイアログが表示され、「すでに承認されています」と表示されます
- 右上の「OK」ボタンをタップ
- AppDelegate は、文字列に適切なアクセス トークンを含む OpenUrl 呼び出しを取得します。
- FBSessionDelegate.DidLogin が呼び出されます
...しかし、Facebook のアプリ内ポップアップ ダイアログは消えることはありません。
これは monotouch-bindings に含まれているサンプル アプリを使用しています。Facebook SDK、MonoTouch バインディング、およびサンプル アプリは、Github から取得され、今日の時点でビルドされています。これは、ユーザーが Facebook でアプリに対して既に承認されているかどうかに関係なく発生します。
これは、Retina 解像度で実行されている iPhone シミュレーターでは発生しません。その場合、ユーザーを承認するためにWebビュー(Safariの場合だと思います)に飛び出し、適切にアプリに戻ります。
(ネイティブの) facebook-ios-sdk に含まれている HackBook サンプルをビルドし、320x480 デバイスのシミュレーターで実行すると、アプリ内ポップアップが使用されないことに注意してください。ネイティブの HackBook アプリと monotouch-bindings の FacebookSample アプリは実質的に同じコードを使用しますが、この動作の違いが存在します。
何か案は?