【问题标题】:Is there any way to remove the "Back to Safari" button appearing in iOS 9 via code in Objective-C?有没有办法通过Objective-C中的代码删除iOS 9中出现的“返回Safari”按钮?
【发布时间】:2016-01-21 10:33:42
【问题描述】:

我有一个应用程序允许用户使用 facebook 帐户登录,并通过该过程将他们重定向到 iOS 9 现在通过 safari 而不是 webview 完成的 facebook 登录页面。现在,当我的应用程序在此之后运行时,我的应用程序顶部有一个永久性的“返回 Safari”按钮,代替了运营商/wifi 信号和一些按钮的顶部。 对此我能做些什么吗?我一直在网上搜索,似乎找不到任何可以让我关闭它的东西。

【问题讨论】:

  • 如果您更新到最新的 FB SDK,它会在应用程序中进行登录。并回答您的问题:不。
  • 另外:按钮不是永久的。

标签: ios objective-c ios9


【解决方案1】:

不,没有可用的 API 可让您执行此操作。

这是 iOS 9 的一项功能,是用户所期待的。

如果您确实找到了解决方法,例如覆盖状态栏的这一部分,您可能会违反 App Store review 准则中的 10.1,并且您的应用可能会因此被拒绝。

【讨论】:

  • 你是对的,一旦“返回 Safari”的东西显示出来,你就不能(也不应该尝试!)以编程方式删除它。然而一个API可以在离开你的应用程序的情况下使用Safari,因此从一开始就不会发生“回到Safari”的事情。(看我的回答。)
  • 没有没有用于删除该功能的api。虽然您确实可以访问 SFSafariViewController 作为替代方案,但问题是关于 turning off '返回 safari' 按钮。我认为最新的 FBSDK 支持甚至不需要移动到 safari。
  • 他只是问,“我能做些什么吗?”有,我告诉他。我的意思是,就像当一个程序员去看医生时,他说,“当我像这样这样坐着时会很痛。” 这个问题?”所以医生说,“好吧,首先,不要那样坐……”
  • 我第二个@CommaToast 潜在的问题是“如何摆脱那个 Safari 反向链接,如果它一开始没有出现就更好了”
【解决方案2】:

您应该改用SKSafariViewController。这样用户就永远不会离开您的应用。

当然,如果您想保持与 iOS 8 及更早版本的向后兼容性,您将不得不为 iOS 9 和更早版本提供单独的代码。

在我的应用程序中,使用 SKSafariViewController 是一件轻而易举的事,而且我从来没有遇到过“返回 Safari”的任何问题。 SKSafariViewController 永远不会发生这种情况。如果是这样,那么你做错了 - 即不知何故,你强迫用户切换到实际的 Safari 应用程序,他们不应该这样做。

对于一个好的教程see this site,或谷歌..Apple 有一个非常好的 WWDC'15 视频关于这个主题。

顺便说一句,我 100% 确定这适用于 FaceBook 登录,因为我见过一个主要的应用程序以这种方式使用它。

【讨论】:

    【解决方案3】:

    如果你总是知道背景,你可以用不透明的覆盖物覆盖它。

    为此,创建一个新窗口并将其级别设置在状态栏之上。

    这有点 hacky,可能不会从该区域删除交互性(您仍然可以点击按钮)。也很难知道按钮何时消失,您必须取下盖子。

    所以,最好不要这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      相关资源
      最近更新 更多