代码之家  ›  专栏  ›  技术社区  ›  user1383060

使用通用链接在iOS上的推送通知中进行深度链接

  •  3
  • user1383060  · 技术社区  · 7 年前

    我正在调查在推送通知中使用通用链接,以便深入链接到iOS应用程序。这是为了让我能为网络做未来的证明。 许多示例和教程都假设用户将从网站中选择一个通用链接,以深入链接到应用程序。 我想在推送通知中使用通用链接,而不是常规的URL模式方法。 我读过苹果的文档 https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html

    然而,目前我还不清楚,如果我只是使用通用链接通过推送通知打开应用程序,我是否仍需要设置所有配置,例如创建苹果应用程序站点关联文件并将其上载到web服务器的根目录。

    这种在推送通知中使用通用链接以深入链接到应用程序某个区域的方法是推荐的方法,因为苹果似乎总体上不鼓励使用URL模式,还是推送通知是一种特例?

    1 回复  |  直到 7 年前
        1
  •  13
  •   Mark Thormann    7 年前

    推送通知和通用链接是两种不同的动物,尽管它们都用于让用户进入应用程序。

    如果没有安装应用程序,iOS设备上的Safari将首先通过通用链接打开。如果应用程序存在,用户将立即从Safari跳转到该应用程序,并将URL传递给AppDelegate方法 application(_:continue:restorationHandler:) 。如果应用程序不存在,Safari会打开通用链接的URL。此处需要设置apple应用程序站点关联文件,以验证您是否拥有相关的目标URL,并可以将用户从网站重定向到应用程序。通用链接更适合用户发起的交互(单击电子邮件中的链接等)

    另一方面,推送通知通过TCP/IP直接与设备通信,以将消息从APN传递到iOS设备(请参阅 APNs Overview 了解更多信息)。Safari没有参与,用户点击iOS设备上的通知(例如)打开通知并转到目标。你的目的地不像通用/深度链接那样通过URL传递,而是在通知负载中使用额外的JSON,你可以在应用程序中处理(请参阅 Creating the JSON Dictionary 对于此结构)。苹果应用程序网站与推送通知没有关联,因为没有涉及任何网站。您直接从APN与应用程序通信,并使用证书来确保只有您才能使用推送通知打开应用程序。远程推送通知非常适合开发人员发起的交互来吸引用户。

    希望这有助于澄清问题!