2013-03-15 42 views
0

我使用iPhone模拟器上运行的Monotouch Facebook绑定作为“iPhone”设备(即320x480),当它试图授权时,(应用内)弹出对话框从不消失了。即使在MonoTouch绑定中包含示例应用程序时也会发生这种情况。这里是发生了什么:MonoTouch + Facebook的弹出对话框永远不会消失

  • 呼叫Facebook.Authorize
  • 应用程序内 Facebook登录对话框弹出的凭据,然后按
  • 填充“登录”
  • Facebook的为应用程序对话出现说:“已经授权”
  • 点击右上角的“好”按钮
  • AppDelegate通过字符串
  • 01中的正确访问令牌获取OpenUrl调用
  • FBSessionDelegate.DidLogin叫

...但Facebook的应用内弹出的对话框中永远不会消失。

这是使用Monotouch绑定中包含的示例应用程序。 facebook SDK,MonoTouch绑定和示例应用程序都是从Github提取的,并且从今天开始构建。无论用户是否已经在Facebook上获得应用授权,都会发生这种情况。

这是的不是发生在iPhone模拟器运行Retina分辨率。在这种情况下,它会弹出到Web视图(在Safari中,我认为)来授权用户,并且它会正确返回到应用程序。

需要注意的是,如果我去构建符合包含(本地)Facebook的IOS-SDK的HackBook样品,并在模拟器上320x480的设备上运行,它使用应用程序内弹出。本机HackBook应用程序和Monotouch绑定的FacebookSample应用程序几乎使用相同的代码,但存在这种行为差异。

任何想法?

+0

另外一个后续问题:在我自己的应用程序中,Facebook SDK总是使用应用程序内弹出窗口,因此我的应用程序永远不能登录Facebook。在FacebookSample应用中,如果我在iPhone 3的解析度以上运行,至少会弹出到web视图。为什么SDK会选择仅使用应用内弹出窗口的任何想法? – Mike

回答

0

我觉得这里有两个问题。

1.我的开发工具安装和iPhone模拟器有一个问题,有时Safari本身甚至不会运行。它会执行转换,然后立即消失。我的猜测是,Facebook SDK正在尝试使用URL启动Safari,当它失败时,它会回退到应用内Web视图。

2. Facebook SDK的Web视图回退可能被破坏(因为它永远不会在您认证后删除网页视图),或者我的安装可能导致Web视图停留在其他问题。

重新启动我的Macbook并在iOS模拟器上重置内容和设置有时会帮助Safari启动,但通常问题会最终返回。

我能找到的最接近的stackoverflow问题是here,他们建议重新安装Xcode。如果/当我开始这样做,我会发布是否解决了这个问题。