在 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 深层链接的主要内容,如果未能解决你的问题,请参考以下文章