有没有什么办法通过Objective-C中的代码去除出现在iOS 9中的“Back to Safari”按钮?

问题描述:

我有一个应用程序,让用户使用Facebook帐户登录,并通过该过程将其重定向到Facebook登录页面,iOS 9现在通过Safari浏览器而不是webview完成。现在,当我的应用程序运行后,发生这种情况时,我的应用程序的顶部有一个永久的“Back to Safari”按钮,代替载波/无线信号,并位于我的一些按钮之上。 我能做些什么吗?我一直在网上搜索,似乎无法找到任何可以让我关闭它的东西。有没有什么办法通过Objective-C中的代码去除出现在iOS 9中的“Back to Safari”按钮?

image desc

+2

如果您更新到最新的FB SDK,它会在应用程序中进行登录。并回答你的问题:不。 – Avi

+0

另外:该按钮不是永久性的。 – Tommy

没有,没有可用来让你做这个API。

这是一个iOS 9功能,它是用户期望的。

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

+3

你是正确的,一旦“回到Safari”的事情显示,你不能(也不应该尝试!)以编程方式将其删除。然而,*有一个API,可以在不离开应用程序的情况下使用Safari *,因此*永远不会产生“回到Safari”的事情。*(请参阅我的回答。) – CommaToast

+0

*有*无* *功能。虽然您有权访问SFSafariViewController作为替代方法,但问题是关于*转* *关*回'safari'按钮。我认为最新的FBSDK无论如何都不需要迁移到Safari。 –

+1

他只是问:“我能做些什么吗?”有,我告诉他。我的意思是,就像一个程序员去看医生时,他说:“当我坐在这样的桌子上时,会感觉很痛苦。”“当他编写代码时,他会非常可怕。>“我能对这个问题做些什么?”所以医生说:“好了,对于初学者来说,不要这样坐......”> – CommaToast

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

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

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

所以,最好不要这样做。

您应该切换到使用SKSafariViewController。这样用户永远不会离开你的应用程序。

当然,如果你想保持与iOS 8和更早版本的向后兼容性,你将不得不为iOS 9分开代码,而不是早期版本。

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

对于一个好的教程see this site,或谷歌。苹果有一个相当不错的WWDC'15视频的主题。

顺便说一句,我100%确定这可以用于FaceBook登录,因为我已经看到一个主要的应用程序使用它的方式。