iOS 自定义 URL 方案与通用链接和 Android 对应方案

iOS custom URL schemes vs. Universal Links and Android counterpart

我正在寻找这样的功能,当用户收到消息时——比方说通过 WhatsApp 应用程序——包含以特定方案(前缀)开头的 link,我的应用程序将在用户收到时被调用点击 link.

我知道此功能已作为 "custom URL schemes" 提供,但我现在也注意到通用链接也有类似的功能。那么,"custom URL schemes"有什么问题吗?我不想使用通用链接,因为我不想让我的应用仅限于 iOS 9.

此外,看起来 Android 也有客户 URL 的这个功能,但同样,在最新的 Android 6.0 版本中,提到 here 他们还具有 "App Links" 功能,仅适用于 Android 6.0。那么,再次强调一下,这两者有什么区别呢?

我不想限制我的应用程序只能在 iOS9 或 Android9 上运行。所以我想传统的 "custom URL schemes" 目前对我来说更有吸引力存在。

此外,我想确保 "custom URL schemes" 会在用户点击 WhatsApp 上的 link 时起作用,或者只有在网络浏览器上点击 link 时才会起作用,或者邮件。

URL 具有自定义方案的在许多 Android 应用程序(SMS、电子邮件、WhatsApp、环聊,随便你怎么说)中都不会显示为链接,这实际上使它们成为可能您的应用程序无法打开。 iOS 但是不允许定义方案 + 主机 + 路径 like android does.

一个可能的(hacky)解决方案是浏览器嗅探(我知道,邪恶的,但对定义明确的行为的非标准扩展也是如此,特别是如果一开始没有任何问题)在你公开的资源通过 URL 可通过 HTTP(s) 访问。

您可以检查请求是否来自您为其提供本机应用程序的 iOS 平台;那么您将必须确保设备安装了您的应用程序(这越来越丑陋;请参阅 here for example),然后才重定向到 yourapp://the-rest-of-your/uri,这会导致向用户显示提示他们是否想在应用程序中打开地址。 (在 iPhone 4 和 iOS 8,Safari 浏览器上测试。)