【问题标题】:Get referrer string for Universal Link?获取通用链接的引用字符串?
【发布时间】:2016-02-13 21:36:20
【问题描述】:

我在我们的 iOS 9 应用程序中实现了通用链接,它们通过调用 AppDelegate.swift 中的一个方法来工作,在该方法中我得到一个带有 URL 的 NSUserActvity

有没有办法获得(HTTP-)引用?我需要知道用户在哪个网站上点击了打开应用的链接。

【问题讨论】:

    标签: ios ios9 http-referer referer referrerurl


    【解决方案1】:

    不,没有办法获得推荐人。 一位 Apple 员工在开发者论坛上说得很清楚:https://forums.developer.apple.com/thread/65423

    他们说获得某种引荐来源的唯一方法是将其附加到 URL。不妨看看 Google 的广告系列跟踪网址 (utm_...)。

    【讨论】:

      【解决方案2】:

      您应该能够使用 NSUserActivity > referrerURL 实例属性。见https://developer.apple.com/documentation/foundation/nsuseractivity/2875762-referrerurl

      【讨论】:

      • 这似乎有效!谢谢艺术。其他注意事项:该属性在 iOS 11 之前不可用。
      • 这仅在从浏览器从网站重定向时有效?来自另一个应用程序时有解决方案吗?就像打开 url 方法中的源应用程序一样。
      • 这似乎不起作用。该属性在那里,但始终是nil,无论是来自网站还是其他应用程序。
      • @chadmoone 根据我的经验,它适用于某些网页,但同时不适用于其他网页。例如 - 我能够从 Safari Gmail 中获得 referrerURL,我在其中放置了我的通用链接,但在 Safari 雅虎邮箱、Safari 电报中这样做 - 给了我 nil。还能够从 Facebook 和 Twitter 网页获取它。不知道它是如何工作的。
      【解决方案3】:

      如果您需要支持 iOS 9 和 10,我发现了另一个有趣的解决方案 - https://appmetrica.yandex.com/blog/referrer-based-tracking-dlya-ios-tochnaya-atributsiya-dlya-lyubogo-istochnika-trafika

      从iOS 11开始我猜可以使用NSUserActivity>referrerURL。

      简而言之:

      • SFSafariViewController 使用与 Safari 应用程序相同的 cookie。
      • 您可以在应用程序中打开不可见的 SFSafariViewController。
      • 如果您的网站包含一些 cookie - 使用通用链接将其传回应用程序。

      虽然它需要在您的网站上实现跟踪链接之类的功能。

      【讨论】:

        猜你喜欢
        • 2020-05-19
        • 2020-03-15
        • 1970-01-01
        • 2015-01-06
        • 2016-03-28
        • 2019-07-22
        • 2016-07-09
        • 2011-01-25
        • 1970-01-01
        相关资源
        最近更新 更多