0

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 アプリは実質的に同じコードを使用しますが、この動作の違いが存在します。

何か案は?

4

1 に答える 1

0

ここには2つの問題があると思います。

1.開発ツールのインストールと iPhone シミュレーターに問題があり、Safari 自体が実行されないことがあります。トランジションイン効果が発生し、すぐに消えます。私の推測では、Facebook SDK は URL を使用して Safari を起動しようとしており、それが失敗すると、アプリ内の Web ビューにフォールバックします。

2. Facebook SDK の Web ビュー フォールバックが壊れている可能性があります (認証後に Web ビューが削除されないという点で)。

Macbook を再起動し、iOS シミュレーターでコンテンツと設定をリセットすると、Safari が起動することがありますが、通常は最終的に問題が再発します。

私が見つけた最も近いスタックオーバーフローの質問はhereで、Xcode を再インストールすることをお勧めします。もし私がそれをやろうとしたら、それがこの問題を修正したかどうかを投稿します.

于 2013-03-17T12:34:57.847 に答える