在 Gmail 中删除了 iOS 深层链接

Posted

技术标签:

【中文标题】在 Gmail 中删除了 iOS 深层链接【英文标题】:iOS deep linking is stripped out in Gmail 【发布时间】:2014-06-27 20:08:48 【问题描述】:

我正在尝试发送一封包含指向我的 ios 应用程序的深层链接的电子邮件,使用 myapp:// 格式从电子邮件中打开它。它在任何 iOS 邮件客户端(邮件、邮箱等)中有效(即点击它打开应用程序),但在 Gmail 应用程序(甚至网络)中无效,这会将其剥离,只留下文本。除了创建一个从浏览器重定向到应用程序的网络链接之外,是否有人有解决方案/替代方案?

【问题讨论】:

"iOS" 不需要在标题中... android 深度链接是完全一样的,并且会遇到同样的问题。 【参考方案1】:

不,很遗憾,Gmail 会在链接中检测到非 http/https 协议并去除锚 () 标记(因此使用 data: 或 javascript: 执行重定向也是不可行的)。

如果/当 Google 在适用于 iOS/Android 的 Gmail 上实施操作时,这些操作可能会起作用 (https://developers.google.com/gmail/actions/actions/actions-overview),但截至目前,它们不会在原生移动客户端上呈现。

【讨论】:

我的解决方案是在我的服务器上放置一个普通的 http(s) 端点,该端点将重定向到深层链接 app://... url。 谢谢迈克尔...这个解决方案完美运行。有时最原始的解决方案是最好的…… 那它必须打开浏览器作为中介,而不是直接进入你的应用程序? 是的 @celwell 在这里也一样。有什么办法可以直接上app吗? 如果安装了应用,上述方法将打开应用程序,但如果用户设备上未安装应用程序,我该如何处理请求。【参考方案2】:

您可以创建一个具有常规端点的服务器,该端点将重定向到“特殊”myapp:// 链接。

如果您正在运行 Node + Express,这里有一个完全可以做到这一点的中间件示例:

https://github.com/mderazon/node-deeplink

【讨论】:

以上是关于在 Gmail 中删除了 iOS 深层链接的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 上配置 Firebase 应用后,Branch.io 深层链接停止工作

从深层链接的开头删除 /#/?

指向 Gmail 应用中特定邮件的深层链接

删除Gmail上的链接的蓝色下划线

如何删除/删除 Firebase 中的动态链接? [关闭]

如何删除/删除 Firebase 中的动态链接? [关闭]