2013-01-01 26 views
9

我发送电子邮件内的自定义URL方案的链接:打开在Safari/GMail的一个自定义的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应该能够识别这些链接?

+0

我认为这一定是GMail正在做的事情 - 我将同一行html上传到网络服务器,并且它从Safari浏览器开放。 –

+1

我遇到了同样的问题。我也假设这是你的想法--gmail忽略了这些定制方案。 – brainjam

+2

确认,截至2013年4月25日,Gmail仍然忽略iOS自定义网址方案网址。 – pchap10k

回答

7

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

此链接将在电子邮件:

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

这则重定向到:

myappscheme://开/参数=一个

它意味着你必须打开Safari来处理链接,但考虑到你打开GMail应用程序的链接,我认为这是一个小问题,以使其正常工作。

+0

我实际上发现,这不适用于我在iOS Safari中通过Gmail。我的expressjs应用发布重定向到我的自定义URL方案,但Safari似乎只是忽略它(我得到一个空白屏幕)。似乎它*应*工作,但我不能让它去... –

+0

如果当用户尝试从Gmail客户端打开链接时没有互联网连接怎么办? –

+0

他们会立即在Safari中看到“无法连接”类型错误,并且该过程不会再进行。在发生这种情况时建立互联网连接是我的方法工作的唯一途径。 – AndyDunn