【问题标题】:Opening a custom url link in Safari/GMail在 Safari/GMail 中打开自定义 url 链接
【发布时间】:2013-01-01 17:08:28
【问题描述】:

我正在电子邮件中发送自定义 url 方案链接:

[body appendString:@"<div><a href=\"my-custom-url-scheme:test\"><button type=\"button\">Open in App</button></a></div>"];

这成功地在我发送的电子邮件中添加了一个按钮,当点击该按钮时,会打开我的应用程序(如果已安装)。

当我在 iOS 设备上的 mail.app 中打开电子邮件时,这可以正常工作,但当我在 Gmail 中打开邮件时(通过 Safari 和本机 GMail 应用程序),它不会执行任何操作。

这是框架的限制吗?或者 safari 应该能够识别这些链接吗?

【问题讨论】:

  • 我认为这一定是 GMail 正在做的事情 - 我将同一行 html 上传到网络服务器,它从 safari 中打开正常。
  • 我遇到了同样的问题。我还假设这是您的想法 - gmail 忽略了这些自定义方案。
  • 确认,截至 2013 年 4 月 25 日,Gmail 仍会忽略 iOS 自定义 url 方案 url。
  • 截至 2015 年 4 月 1 日,@pchap10k
  • 截至 2016 年 5 月 18 日仍然忽略

标签: iphone ios cocoa-touch email url-scheme


【解决方案1】:

我为此找到的最佳解决方案是链接到 Web 服务器上的 PHP 脚本,该脚本接受参数并将请求重定向到 Safari 中的自定义 URL 方案。

此链接将在电子邮件中:

http://myserver.com/_script.php?parameter=one

然后重定向到:

myappscheme://open/?parameter=one

这确实意味着您必须打开 Safari 来处理该链接,但鉴于您是从 GMail 应用程序打开该链接,我认为这是一个小问题才能使其正常工作。

【讨论】:

  • 我实际上发现这对我在 iOS Safari 中通过 Gmail 不起作用。我的 expressjs 应用程序正在向我的自定义 URL 方案发出重定向,但 Safari 似乎只是忽略它(我得到一个空白屏幕)。似乎它应该工作,但我就是无法继续......
  • 如果用户尝试从gmail客户端打开链接时没有互联网连接怎么办?
  • 他们会立即在 Safari 中看到“无法连接”类型的错误,并且该过程不会继续进行。发生这种情况时连接互联网是我的方法唯一可行的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-16
  • 2023-03-10
  • 1970-01-01
  • 2012-02-11
  • 2014-11-14
  • 1970-01-01
相关资源
最近更新 更多