gpt4 book ai didi

ios - 如何使用浏览器重定向创建 Facebook 风格的应用内身份验证?

转载 作者:行者123 更新时间:2023-12-01 18:55:22 25 4
gpt4 key购买 nike

我希望能够通过自定义 iPhone 应用程序对来自 Safari 网站的交易进行身份验证,然后有一个回调将用户带回同一个 Safari 窗口……有点像 Facebook OAuth 风格的登录。

  • 用户在网页上,点击按钮进行交易
  • Safari 使用方案和参数 (How to open a native iOS app from a web app)
  • 启动我们的自定义应用程序
  • 应用验证用户
  • 通过一些回调将用户重定向回 Safari,通知网页事务已成功(最好在同一窗口中)

  • 这是第 4 步,我不知道该怎么做。我想我可以很容易地将用户重定向回另一个窗口中的浏览器,但是是否可以通过回调将它们发送回它们之前所在的同一个窗口?

    最佳答案

    更新:
    有可能,经过一些实验,我在 Safari 的行为中发现了一些有趣的东西。如果 Safari 打开了一个带有不在站点根目录上的 URL 的选项卡,那么如果您的应用再次请求相同的 URL,它将不会打开新的选项卡。

    所以在你的情况下,如果你来自 facebook.com/auth 并且你的应用程序打开了 http://facebook.com/auth然后标签将被重用!您也可以安全地传递 Web 参数;这些将在选项卡处理决策中被忽略。我还没有测试过 http 和 https 来看看这是否也被忽略了,但这是需要注意的。

    老答案:

    是的,这是可能的,但是唯一的 记录 打开 Safari 的方式将导致为您的“请求”打开一个新选项卡。

    记录在案的方法是使用这样的 URL 方案:

    if( [[UIApplication sharedApplication] canOpenURL:myURL] )
    {
    [[UIApplication sharedApplication] openURL:myURL];
    }

    https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html

    我之所以说这是可能的,是因为谷歌地图在 iOS 8 上做到了这一点。
    如果您使用移动 Safari 搜索地址,然后选择生成的 map View ,它将打开 Google map 应用程序(如果已安装)。 Google map 应用程序将在页面顶部显示“返回 Safari ”的横幅。如果您单击此横幅,它将带您返回 Safari,而无需以您想要的方式打开新标签。

    同样的行为也扩展到 Chrome。此处的文档还指出,除非您进行多次调用,否则当您在 Chrome 中打开 URL 时将创建一个新选项卡:

    https://developer.chrome.com/multidevice/ios/links#creating-a-new-tab

    当然,Chrome 是他们自己的应用程序,在这种情况下,他们完全有权使用未记录的功能。我不能说谷歌是如何通过 Safari 实现这一点的。

    我建议最好找到一种方法来支持这两种浏览器,就像谷歌在他们的 map 应用程序中所做的那样,为用户提供一致的体验并尊重他们对浏览器的选择。在我看来,这个功能当然是合理的;如果 Safari 启动了您的应用程序,为什么您不能将用户返回到该页面。

    关于ios - 如何使用浏览器重定向创建 Facebook 风格的应用内身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27622971/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com