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

标签 ios push-notification deep-linking ios-universal-links

我正在研究使用推送通知中的通用链接来深度链接到 iOS 应用程序。这样我就可以保证网络的 future 发展。 许多示例和教程假设用户将从网站选择通用链接来深层链接到应用程序。 我想在推送通知中使用通用链接,而不是常规的 URL 架构方法。 我已阅读苹果文档 https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html

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

这种在推送通知中使用通用链接来深层链接到应用程序区域的方法是否是推荐的方法,因为 Apple 似乎一般不鼓励使用 URL 架构,或者推送通知是一种特殊情况?

最佳答案

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

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

另一方面,推送通知通过 TCP/IP 直接与设备通信,将消息从 APN 传递到 iOS 设备(有关详细信息,请参阅 APNs Overview)。 Safari 不涉及,用户点击 iOS 设备上的通知(例如)以打开通知并转到目的地。您的目的地不是像通用/深层链接那样通过 URL 传递,而是在通知有效负载中包含额外的 JSON,您可以在应用程序中处理(请参阅 Creating the JSON Dictionary 了解此结构)。由于不涉及网站,因此不存在与推送通知的 apple-app-site-association。您直接从 APN 与您的应用程序进行通信,并通常使用证书来确保只有您可以通过推送通知打开您的应用程序。远程推送通知非常适合开发人员发起的交互来吸引用户。

希望有助于澄清问题!

关于ios - 在 iOS 上的推送通知中使用通用链接进行深度链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49284293/

相关文章:

objective-c - 尝试通过图像选择器从照片库中获取照片时应用程序崩溃

iphone - 如何提取特定值并填充到表格 View 中

php - iOS 推送通知问题 它工作了一段时间,但有时不工作

flutter - Firestore 更改后使用 FCM 发送推送通知?

c# - 如何在 Windows Phone 8 中实现深度链接

Android Activity 启动模式和深度链接问题

Android 深度链接架构 : match both http and https

ios - 在 iOS 11 中使用大标题时调整条形按钮项目的位置

iphone - 控制应用程序从后台返回时何时刷新

android: 实现推送通知