我们正在尝试在我们的某个iOS应用程序中实施延迟深层链接,以鼓励用户邀请他们的朋友使用该应用程序,并根据他们的推介链接发生的安装数量来奖励用户.基本上类似于TapStream的产品.
考虑这个例子:
因此,UserA在他们想要的任何网络上分享他们的链接"ourappURL.com/refer?id=userA".UserB单击该链接,将其带到Safari,然后将它们退回到UserB下载应用程序的App Store页面.
当UserB打开应用程序时,应用程序会检查它们所引用的引荐ID(如果有).在此示例中,引荐ID将是"userA",因为它是引用链接中的ID.该应用程序然后将此发送到我们的服务器,我们授予UserA一个推荐信用.
我试图将这个问题分解为其核心部分.我相信第一部分是获取用户引荐链接的网页,以将引荐ID保存到应用可以访问它的某个地方的设备.但由于iOS的沙盒特性,我不确定这是否可行.
我知道这基本上是可行的,因为许多广告提供商都能够跟踪广告系列的安装情况(例如,请参阅移动应用跟踪).
所以我希望在网页登陆时启动一个移动应用程序。我已经看到这样做了,一切都很好(以 Facebook 和 Pandora 为例,请参阅下面的代码)。但是我正在寻找一种逻辑检查来根据应用程序的成功或不成功启动以一种方式或另一种方式路由用户。在之前的解决方案中说您不能使用链接来检查用户的移动设备以查看是否安装了应用程序,但我一直在想可能有一种方法可以查看用户的应用程序是否在之后成功启动 -事实并基于此路由它们。
使用下面的代码,如果应用程序启动,网页就会消失,如果你愿意的话(在应用程序占据中心位置时消失在后台)。但是,如果该应用程序未安装在移动设备上,则网页会保持运行状态,并且您会收到错误消息(无法立即回忆起哪个错误)。但在我看来,收到此错误应该能够触发重新路由到您选择的特定 URL。不是在服务器级别,而是在代码级别。换句话说......如果应用程序启动,那么免费......享受!但是,如果页面加载时出现错误,它会立即重定向到 Apple 或 Google 上的应用程序下载页面(取决于检测到的操作系统)。
有没有人有关于如何实现这一点的建议?本质上是一段代码,它正在寻找触发错误并对此做出反应,作为 A) 从页面加载(链接)启动应用程序 B) 在浏览器中打开应用程序商店以下载应用程序(如果应用程序不是) t 成功启动。
这是我第一次涉足 Stack,但多年来我发现社区非常有帮助。
<script type="text/javascript"> // <![CDATA[
var isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function() {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i);
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
}
};
if ( isMobile.Android() ) { …Run Code Online (Sandbox Code Playgroud) 我试图在我的网站上建立一个链接,该链接将在App Store上打开该应用程序,其中包含一些额外的参数,安装后我的应用程序便可以使用这些参数。
顺序将与此类似:
希望它看起来像这样:
itms-apps://itunes.apple.com/app/id123456789?user=foo&page=bar
Run Code Online (Sandbox Code Playgroud)
我想要执行此操作的主要原因是,这样用户可以直接跳到他们所在的页面,也可以登录。
我已经对此进行了一些研究,但只发现了用于会员链接的内容(也许可以用于此目的),但这似乎不是正确的选择。
任何想法将不胜感激,谢谢!
编辑
事实证明,这称为“延迟深层链接”,这是我发现的一些类似线程: