如何通过点击电子邮件中发送的超链接将用户redirect到移动应用程序或网站? 是否需要在服务器端使用PHP进行处理?

我有一个网站已经开发使用PHPFox ,它工作正常。 现在,iOS开发团队已经在iOS中创build了一个与网站function相同的移动应用程序。 用户可以使用他/她可以在网站上完成的所有操作。 换句话说,我们可以说这个应用程序是现有网站的副本。 应用程序开发的唯一限制是stream程和function应该与网站相同。 应用程序和现有正在运行的网站之间不应有任何function差异。

对于这个应用程序,他们正在使用与网站的PHPFox代码库相同的function。 我通过使用Slim框架开发的REST API来使iOS团队可以使用这些function。 在这些API中,我接受来自应用程序的JSON格式的请求,将其解码,通过传递所需的请求参数从PHPFox代码库调用所需的函数,从函数获取响应,将其转换为JSON格式并将其发回到移动应用程序。

现在,我们来关注一下我面临的问题。

在这两种场景(网站和应用程序)中,对于某些function,如新用户帐户激活链接,重新发送帐户激活链接,重置现有用户密码(如果他/她忘记密码等),则向相关用户发送电子邮件。 这封电子邮件包含相关超链接。 当用户点击发送到电子邮件的超链接时,它总是redirect到网站上的相应网页。

当特定用户点击收到的邮件中的超链接时,它只会被redirect到网站 。 它不会redirect到应用程序。

我的要求是,如果用户已经打开邮件到已安装/运行移动应用程序的设备上,并单击邮件中的超链接,他/她应该redirect到移动应用程序的特定页面而不是网站。

假设用户在计算机,笔记本电脑或未安装应用程序的设备上打开邮件,他/她应该redirect到该网站。

我应该如何做到这一点?

还有一点需要注意的是,要发送到邮件的链接的redirectpath( href属性的值)仅生成到网站的PHPFox代码中。 所以,如果我需要改变逻辑来实现这个新function,我应该怎么做,而不必改变应用程序和网站上的系统stream? 或者我应该为它写一个新的函数,以便不改变PHPFox的现有代码?

我研究了这个问题的解决scheme。 我来了解Bitly ,可以做这个工作,但不知道如何。

这个要求是由iOS团队在我们(PHP团队)基于他们在互联网上find的这个超链接文章提出的。 请参阅这也。

所以,我直截了当的问题是,因为这篇文章是关于iOS编码的,并且与服务器端编码(即PHP)没有任何关系,我必须在服务器端使用PHP来实现这个function。

您(或您的iOS团队)需要向iOS应用程序添加URLscheme,以便进行深度链接。 然后你需要一个网站,检查这个URLscheme(因此iOS应用程序)是否可用的设备上。 如果是的话,那么你转发到应用程序,如果没有你转发到该网站。 然后,您将链接embedded到您的电子邮件中的支票网站。

有服务,可以帮助您完成整个设置。 我知道的是https://branch.io,但是我确定有更多。

编辑:

iOS中的深入链接: http : //blog.originate.com/blog/2014/04/22/deeplinking-in-ios/

从这个链接:“要启用深度链接,请转到Xcode项目的信息选项卡。在URLtypes部分,点击+button,然后添加一个标识符和一个URLscheme。确保标识符和URLschemeselect是唯一的。请记下您input的URLscheme,因为iOS知道如何在您的应用程序中打开链接。

有更多的步骤要遵循,所以一定要读取整个事情。

为iOS和Web创build链接:

创build一个链接,启动iOS应用程序,或redirect到应用程序商店

是否有可能注册一个基于http +域名的iPhone应用程序的URL计划,如YouTube和地图?

而不是redirect到AppStore,你想redirect到你的网页。

你不必做任何事情。 请您的iOS开发人员阅读关于URL Schemes架构的内容,这些内容似乎已经在您提到的基于iOS团队与您联系的链接中进行了解释。 该链接显示了如何使您的应用程序能够从另一个地方启动(应用程序 – 在您的情况下,邮件应用程序)。 电子邮件把用户带到网站而不是应用程序的原因是因为超链接提到你的网站链接,并没有提到应用程序。

基本上类似于你的网站有一个链接的forms说http://youwebsite.com/ ,该应用程序也有一个yourapp://一旦iOS应用程序已经集成了URL scheme的设备上工作的链接。 所以你需要在电子邮件超链接中提到这个URL。

参考这个答案可能会帮助你设置邮件链接。

所以总结起来,

  1. 你不需要做任何事情
  2. iOS团队需要整合URL Scheme
  3. 生成电子邮件的地方确保链接适当更新

PS:使用上面的链接来弄清楚链接是如何工作的,在这里没有解释它有两个原因,

a)它超出了问题的范围,您需要知道是否需要作为PHP开发人员进行任何更改,所以答案是否定的。

b) 这个答案已经解决了

使用JavaScript,你可以有一个登陆页面隧道的用户:

您可以使用以下方式将用户redirect到应用程序scheme:

  document.location="myApp://myUrl"; 

如果浏览器没有findurischeme,可以使用setTimeout将用户redirect到您的网页

 setTimeout(function() { document.location="/path/inside/website.html"; }, 100); 

另一个好的解决scheme是在一个小的testing文件上使用iframetestingurl模式的存在,如果iframe可以被加载,则redirect当前页面

 <iframe id="ifrm" src="" style="display:none"></iframe> <script> window.frames['ifrm'].onload = function() { document.location="myApp://myUrl"; }; window.frames['ifrm'].src = "myApp://myUrl/ok.txt"; </script> 

由于我的理解解决scheme很简单。

每当用户请求忘记密码或创build新帐户..等等。 你必须确定用户从iPhone or Website发送请求,如果用户发送来自网站的请求,你必须通过激活链接的网页,否则你必须发送应用程序的链接像这样“itms-apps://itunes.apple .com / app / idyourappID“ ,据我所知 ,这个PHP团队必须从开发团队那里得到更多的参数,用来识别'web''mobile'这样的设备,以便解决问题。

希望这会帮助你。