0

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

  • 打电话给 Facebook.Authorize
  • 弹出应用内Facebook登录对话框
  • 填写凭据并按“登录”
  • Facebook 的应用程序对话框出现“已授权”
  • 点击右上角的“确定”按钮
  • AppDelegate 使用字符串中的正确访问令牌获取 OpenUrl 调用
  • 调用 FBSessionDelegate.DidLogin

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

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

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

请注意,如果我构建包含在(本机)facebook-ios-sdk 中的 HackBook 示例并在 320x480 设备上的模拟器上运行,它不会使用应用内弹出窗口。本机 HackBook 应用程序和 monotouch-bindings 的 FacebookSample 应用程序使用几乎相同的代码,但存在这种行为差异。

有任何想法吗?

4

1 回答 1

0

我认为这里有两个问题。

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

2. Facebook SDK 的 web 视图回退可能被破坏(因为它在你验证后永远不会删除 web 视图),或者我的安装可能有其他问题导致 web 视图保持不变。

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

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

于 2013-03-17T12:34:57.847 回答