【问题标题】:MonoTouch + Facebook popup dialog never goes awayMonoTouch + Facebook 弹出对话框永远不会消失
【发布时间】:2013-03-15 21:56:59
【问题描述】:

我将在 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 应用程序使用几乎相同的代码,但存在这种行为差异。

有什么想法吗?

【问题讨论】:

  • 还有一个后续问题:在我自己的应用程序中,Facebook SDK -always- 使用应用程序内弹出窗口,因此我的应用程序 -never- 无法登录 Facebook。在 FacebookSample 应用程序中,如果我在 iPhone 3 分辨率以上运行,至少它会弹出到 webview。任何想法为什么 SDK 会选择只使用应用内弹出窗口?

标签: xamarin.ios


【解决方案1】:

我认为这里有两个问题。

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

2. Facebook SDK 的网络视图后备可能被破坏(因为它在您进行身份验证后永远不会删除网络视图),或者我的安装可能有其他问题导致网络查看以熬夜。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    相关资源
    最近更新 更多