我在我们的iOS 9应用程序中实现了通用链接,它们通过调用AppDelegate.swift中的一个方法来工作,在该方法中,我使用附加URL的NSUserActivity
。
有没有一种方法可以获取(HTTP)引用者?我需要知道用户点击打开应用程序的链接的网站是哪个。
我在我们的iOS 9应用程序中实现了通用链接,它们通过调用AppDelegate.swift中的一个方法来工作,在该方法中,我使用附加URL的NSUserActivity
。
有没有一种方法可以获取(HTTP)引用者?我需要知道用户点击打开应用程序的链接的网站是哪个。
您应该能够使用NSUserActivity的referrerURL实例属性。请参见https://developer.apple.com/documentation/foundation/nsuseractivity/2875762-referrerurl。
不,无法获取引荐网址。
一位苹果员工在开发者论坛上明确表示:https://forums.developer.apple.com/thread/65423
他们说,获取某种类型的引荐网址的唯一方法是将其附加到 URL 上。或许可以看看谷歌的活动跟踪 URL(utm_...)来了解相关内容。
NSUserActivity
通过referrerURL
获取引荐网址。referrerURL
的值为nil
。no-referrer
策略类型,完全将引荐网址设为null
。Referrer policy
的HTTP头中,目前默认的类型是:strict-origin-when-cross-origin
。您可以通过打开检查器控制台>网络>选择网站URL并检查Referrer policy
HTTP头来查看源网站使用的实际策略。
nil
,无论是来自网站还是另一个应用程序。 - chadmoonereferrerURL
,在那里我放置了我的通用链接,但在Safari Yahoo Mail、Safari Telegram中这样做会给我返回nil
。同时,我也能够从Facebook和Twitter的网页中获取它。我不知道它在内部是如何工作的。 - Evgeny Karkan