如果用户已安装在设备中,我会尝试将用户重定向到应用程序,否则会将他们重定向到应用程序下载页面(iTunes)。 我想捕获客户端最后去的确切网址(应用程序网址或网页网址)。
是否有任何后台进程来捕获客户端提供的 URL?
if (IOSSafari)
{
window.location.href = appUrl;
var startTime = new Date();
setTimeout(function()
{
if (new Date() - startTime < 600)
{
if (window.location.href != webUrl)
window.location.href = webUrl;
}
}, 500);
}
我的尝试(我尝试如下):-
if (IOSSafari)
{
callback(appUrl); // first callback to my server to identify the user presence
window.location.href = appUrl;
var startTime = new Date();
setTimeout(function()
{
if (new Date() - startTime < 600)
{
if (window.location.href != webUrl)
{
// second callback to my server to identify the user presence
callback(appUrl);
window.location.href = webUrl;
}
}
}, 500);
}
案例 1 应用程序已安装:-
- 用户A进入
- 我的第一个回调有效,用户被重定向到应用
- 现在表中只有用户 A 的 appUrl 条目。由于用户出现在 app(appUrl) 中,这将按预期工作。
案例2应用程序未安装:-
- 用户A进入
- 我的第一个回调成功,用户被重定向到应用
- 由于设备中不存在应用程序,因此 safari 无法打开此页面
- 第二次回调起作用,用户重定向到应用下载页面
- 现在,用户 A 的表有 2 个条目(带有 appUrl 的条目和带有 webUrl 的条目),而不是单个条目(带有 webUrl 的条目,因为用户出现在下载页面中)
最佳答案
捕获该值的一种最简单方法是使用客户端 cookie。
document.cookie="lasturl="+xyz+";path=/";
//xyz is webUrl or appUrl , so write the above line before calling window.location.href=...
document.cookie="lasturl="+deeplinkUrl+";path=/";
window.location.href=deeplinkUrl;
//or
document.cookie="lasturl="+webUrl+";path=/";
window.location.href=webUrl;
稍后您可以检查“lasturl”的 cookie 值
关于IOS Safari 中的 Javascript 后台进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21405091/